.run
の方法に関しては、実行するコマンドラインを示す文字列値は、コマンドプロンプトで入力した場合とまったく同じように表示する必要があります。
powershell.exe -Executionpolicy bypass -noprofile -windowstyle hidden -command "Set-Content -value (new-object System.net.webclient).downloaddata('http://pspad.poradna.net/release/pspad462_setup.exe') -encoding byte -Path $env:appdata\download.exe; Start-Process $env:appdata\download.exe"
のようなものと予想(PSVersion 5.1.14409.1012
、Windows 8.1/64
で尽きることのない)上記のようにコマンドが実行されます。しかし、あなたがpowershell
実行ファイルへの完全なパスを供給したい場合は、以下のように、それは見ることができる:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Executionpolicy bypass -noprofile -windowstyle hidden -command "Set-Content -value (new-object System.net.webclient).downloaddata('http://pspad.poradna.net/release/pspad462_setup.exe') -encoding byte -Path $env:appdata\download.exe; Start-Process $env:appdata\download.exe"
あなたが適切例えばVBScript
に、このような文字列値を構築する必要があります以下、後者のコードスニペットのように:
Option Explicit
Dim WshShell, powershellcommand, objFSO, sPSexePath
Set WshShell = CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
sPSexePath = objFSO.BuildPath(WshShell.expandenvironmentstrings("%systemroot%") _
, "System32\WindowsPowerShell\v1.0\powershell.exe")
powershellcommand = """" & sPSexePath & """ -Executionpolicy bypass -noprofile " _
& " -windowstyle hidden -command ""Set-Content -value " _
& " (new-object System.net.webclient)" _
& ".downloaddata('http://pspad.poradna.net/release/pspad462_setup.exe') " _
& " -encoding byte -Path $env:appdata\download.exe; " _
& " Start-Process $env:appdata\download.exe"""
WshShell.Run powershellcommand, 0
注VBScript
では、二重引用符("
)で囲まれたリテラル文字のシーケンスは、文字列として認識されます。文字列内には一重引用符('
)を使用できます。 文字列に二重引用符("
)を挿入するには、""
と重複している必要があります。
ありがとう、これはずっと前にこれをあきらめました...とにかくありがとう。 – Daemon