VBS を使用して CMD に「%」を入力するにはどうすればいいですか

VBS を使用して CMD に「%」を入力するにはどうすればいいですか

そこで、私は友人の PC の「修正」をプログラムしており、VBS を使用して CMD プロンプトを開き、友人のAppDataフォルダにアクセスする必要があります。しかし、VBS を使用してコマンド プロンプトに送信するとcd %appdata%、次のようにしか出力されませんcd appdata(パーセント記号なし)。

これは VBS 用のスクリプトです:

Set WshShell = WScript.CreateObject("WScript.Shell")

strName = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )

Wshshell.run "cmd"
Wshshell.sendkeys " "
Wscript.sleep 200
Wshshell.sendkeys "cd %appdata%"
Wshshell.sendkeys "{ENTER}"

これをどうすれば修正できますか?

答え1

この解決策は他の場所では明確に言及されていませんでしたが、SendKeys リファレンスヒントを与えました。%記号を中括弧 ( {}) で囲む必要があります。したがって、%記号は になります{%}

例: Visual Basic Sc​​ript (VBS) のリテラルパーセント

Set WshShell = WScript.CreateObject("WScript.Shell")

strName = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )

Wshshell.run "cmd"
Wshshell.sendkeys " "
Wscript.sleep 200
Wshshell.sendkeys "cd {%}appdata{%}"
Wshshell.sendkeys "{ENTER}"

答え2

友達の PC のユーザー名がわかっている場合は、次の操作を実行できます。

Set WshShell = WScript.CreateObject("WScript.Shell")

strName = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )

Wshshell.run "cmd"
Wshshell.sendkeys " "
Wscript.sleep 200
Wshshell.sendkeys "cd "C:\Users\User\AppData\Roaming""
Wshshell.sendkeys "{ENTER}"

ここでのユーザー名を、友達のコンピューターの実際のユーザー名に置き換えてください。お役に立てれば幸いです。
:)

関連情報