WebPenguin のすべての投稿

Fire TVやSwitch Bot ハブでインターネット接続不良

FireTVで、TVer、NHK+が繋がりにくい、SwitchBotハブでインターネット未接続になることが多い
スマホのLineも不調
パソコンのブラウザでは特に異常はない

無線親機のチャンネルなど設定も変更して、試すも改善しない

ホームゲートウェイ PR-500KIの設定も変更してみるが、改善しない
フィルタリング設定やIPアドレス固定、DNS変更、IPv6切断(IPv6が接続になっている?)

結局、HGWでPPPoEブリッジを有効にしてPPPoE接続を解除、無線親機をブリッジモードからルータ機能に変更してPPPoE接続(IPv6ブリッジ有効-デフォルト)で、改善

HGWの設定をどうすれば改善できたかは不明だが、I/Oデータ製の無線ルータでの接続で解決

VBSでDOSコマンド実行

VBScriptでコマンドを実行するとウィンドウ非表示で実行できる

‘実行時のウィンドウサイズ
‘0 非表示
‘1 通常ウィンドウ
‘2 最小化
‘3 最大化

‘DOSのコマンドの実行が終了するのを待って次のコードを実行したい場合は、同期モード”True”


Option Explicit
Dim str,cmdstr
Dim objShell

str = “c:¥temp\ip.txt”
cmdstr = “cmd /c ipconfig /all > ” & str

Set objShell = CreateObject(“WScript.Shell”)

msgbox cmdstr ‘コマンド確認

objShell.Run cmdstr,0,false

セットアップは、USB フラッシュドライブに Windows をインストールすることはできません

セットアップは、USB フラッシュドライブに Windows をインストールすることはできませんの表示でインストールできない

何かのきっかけで通常の内蔵ディスク (ハードディスク、SSD) にインストールされている Windows が、Windows To Go で起動されている環境と誤認されているのが原因

Windows To Go 環境と誤認されている状態を回復するには、以下のレジストリ値を削除するか、データを 0 に設定します。

キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
名前 : PortableOperatingSystem

変更後に再起動

 

以下は、通常不要な操作だが、参考としてメモ
内蔵ディスクと重複している USB デバイスのディスク ID を削除するには、USB デバイスを接続した上で以下の手順を実行
※USB デバイスの内容が削除されるので、事前に必要に応じてバックアップして、復元する処理が必要

コマンドプロンプトを管理者で実行
diskpart
list disk
表示されたディスク一覧から、USB デバイスのディスクの番号を確認
select # (# は上で確認したディスクの番号) コマンドを実行してディスクを選択
clean コマンドを実行
exit コマンドを実行し、diskpart を終了

キーボードレイアウトの選択と表示されて起動できない

Windows起動時に、キーボードレイアウトの選択と表示されて、選択するとメンテンナンス画面になり、修復操作でしても、修復できませんでしたとなり、どうにもならなくなった

原因として考えられることは、起動用USB作成等で、いろいろ実験したためと思われる
クローンソフトなどでコピーした時も起こりうる

後で振り返ると、ブートマネージャーが書き換えられ、OSデバイスが見つからなくて、修復ツールのパーティションが起動していたので、OSのデバイス位置を修正してやればよかった

以下に、回復させて手順をメモしておく

1,ボードレイアウトの選択後、コマンドプロンプトを起動を選択

2,bootrec /scanos でOSのドライブを調べる

3,検出されたドライブ名がCになっていたらOKだが、違っていたら、以下のコマンドで戻す

Eドライブが検出されたとき、dir e: などで目的のドライブかを確認して、以下のコマンドで修正 /l はエル

bcdboot E:¥windows /l ja-jp /s c:

c:  ENTERでドライブ切替
c:>bootrec /rebuildbcd で再構築
※マルチブートで複数ある時は、ここではEなので、EをY選択して追加する

これで、起動可能に回復した

FastCopyとBatファイルのログ

FastCopyをバッチファイルで実行するときにログ指定をした時、文字化けで記録されることがある

BatファイルがShift-JISでFastCopyがUTF-8のためで、FastCopyの旧バージョンでは、ログの文字コード指定ができたが、最近のバージョンでは、できない

そこで、コマンドプロンプトの文字コードを変更する必要がある

chcp 65001を記述するとUTF-8の文字コードでコマンドプロンプトが動作する

chcp 65001

date /T >> “C:\bat\backup.log”
time /T >> “C:\bat\backup.log”
echo “バックアップを開始しました” >> “C:\bat\backup.log”

“C:\Program Files\FastCopy\FastCopy.exe” /cmd=sync /acl=FALSE /exclude=”$Recycle.Bin\;$WinREAgent\;System Volume Information\;” /auto_close /force_close /error_stop=FALSE /skip_empty_dir=FALSE /log /logfile=”C:\bat\backup.log” “E:\” /to=”H:\”

date /T >> “C:\bat\backup.log”
time /T >> “C:\bat\backup.log”

echo “**************** backupバックアップが完了しました *******************” >> “C:\bat\backup.log”

複数のCSVファイルを結合して1つのファイルにする

batファイルでコピー
例 カレントディレクトリ内のCSVファイルを結合データ.csvファイルへまとめる

@echo off
setlocal
rem echo %~dp0
set current_dir=%~dp0
copy /B %current_dir%\*.csv %current_dir%結合データ.csv

※ /B オプション指定でバイナリファイル扱いさせないと、最後に・の行が出来てしまうので注意

VBS Wshでファイル選択を実行ファイルパスにする

エクセルファイルを選択して開くダイアログボックスを実行するvbsファイルのフォルダをデフォルトにする
注意 以下をコピーする時は、 ’と〝 ” を半角の ’ と ”に置き換える必要がある

Dim xlsApp
Dim DPath
Dim FilePath
Dim objShell

‘カレントディレクトリを取得
Set objShell = CreateObject(“WScript.Shell”)
currentDir = objShell.CurrentDirectory

‘.DefaultFilePathにカレントディレクトリをセット
Set xlsApp = CreateObject(“Excel.Application”)
DPath= xlsApp.DefaultFilePath
With xlsApp
.DefaultFilePath = currentDir
.Quit
End With
Set xlsApp = Nothing ‘一度開放して設定を反映
Set xlsApp = CreateObject(“Excel.Application”)

‘カレントディレクトリを初期フォルダでダイアログが開く
FilePath= xlsApp.GetOpenFilename(“Excel File,*.xlsx;*.xls,All,*.*”,1,”ファイルを選択して下さい”,”開く”,false)
If FilePath <> False Then
‘Wscript.Echo FilePath ‘確認時に使用
Else
WScript.Quit ‘キャンセルしてファイルを選択しなかった時
End If

‘FilePathを使って以下に実際の処理を記述

UWSCでリストを読み込んで処理させる

例 エクセルで抽出して2列のデータを読み込む
エクセルで2列を選択して、テキストエディタへ貼り付けるとTAB区切りとなる

リストファイル読み込み例
list_file = “c:\work\list.txt”

ID = FOPEN(list_file,F_READ OR F_TAB) // F_TAB指定しない時はカンマ区切り

n_end = FGET(ID,F_LINECOUNT) // 最終行を取得
n = 0
// **** ループ ****
WHILE(n < n_end) // 最終行まで繰り返す
n = n + 1
str = FGET(ID,n,1) // 1列目読み込み
SENDSTR(0,str) // クリップボードへセット

// 位置を選択した後、貼り付ける
// 貼り付け位置は記録機能で調べる
BTN(LEFT,CLICK,**,**,**)
SCKEY(0,VK_CTRL,V)

str = FGET(ID,n,2) // 2列目読み込み
SENDSTR(0,str) // クリップボードへセット

// 位置を選択した後、貼り付ける
// 貼り付け位置は記録機能で調べる
BTN(LEFT,CLICK,**,**,**)
SCKEY(0,VK_CTRL,V)

// 処理記述

WEND // WHILEループ

UWSCでフォームへデータを記入

SENDSTRでテキストを記入できるフォームと出来ない場合があり、KBDでタイプさせる手もあるが、クリップボードを使うと汎用性が高い


str = “記入したい文字”
// IDを0指定にするとクリップボードへセット
SENDSTR(0,str)

記録で貼り付けたい位置を選択して調べる

BTN(LEFT,CLICK,441,484,300)

位置を選択後、貼り付け
SCKEY(0,VK_CTRL,V) // ペースト

Tablacus Explorerのツールバーへ機能追加

画面をスクロールさせるのに、CTRL+ENDやCTRL+HOMEを使っているが、ツールボタンに追加して、クリックするだけで移動できるようにする
ツールバーアドオンに追加で実行を設定する

タイプをVBScriptでオプションに以下を記述
Set WshShell = CreateObject(“WScript.Shell”)
WshShell.SendKeys (“^{END}”)

Set WshShell = CreateObject(“WScript.Shell”)
WshShell.SendKeys (“^{HOME}”)

または、タイプを実行で

Tablacus ExplorerフォルダへVBSファイルの格納してこれを実行

VBSのキー・ストローク送信を実行する
※下記のコードコピーする時は”を半角に変更すること
<end.vbs>
Set objShell = WScript.CreateObject(“WScript.Shell”)
objShell.SendKeys “^{END}”

<home.vbs>
Set objShell = WScript.CreateObject(“WScript.Shell”)
objShell.SendKeys “^{HOME}”