そこで、私は友人の 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 Script (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}"
ここでのユーザー名を、友達のコンピューターの実際のユーザー名に置き換えてください。お役に立てれば幸いです。
:)