在這裏有幾個與此相關的問題,但它們專門針對寫主機。我要像使用雙引號,然後在powershell中使用大括號-Command
powershell.exe -Command "'example.exe' /f`"`{GUID`}`""
運行的東西,只有它失敗,錯誤
Missing closing '}' in statement block.
At line:1 char:396
+ $mypid=(get-process EXEName*).id;wait-process -id $mypid;
& `C:\Users\User\AppData\Local\Temp\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\Target.exe`
/s /ig``{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`}` /instance=1 /f3`C:\Recordings`
/f4`uninstall-log.txt` /f1`C:\Users\User\AppData\Local\Temp\`{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`}\setup.iss`
/f2`C:\Users\User\AppData\Local\Temp\`{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`}\setup.log` /removeonly <<<<
+ CategoryInfo : ParserError: (CloseBraceToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
我開始"
和含{}
(如/f"C:\Folder\{GUID}\program.exe"
而這些不會引起任何麻煩其他字符串。這只是我的論點大括號與雙引號相鄰:
/ig`"`{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`}`"
在錯誤消息中,它可能是也可能不是值得注意的是,所有的雙引號都沒有了,所以我的/ ig參數留下了兩個反引號。我相信我的版本是2.0。這是我的實際(修改)命令:
powershell -Command "$mypid=(get-process EXEName*).id;wait-process -id
$mypid;& 'C:\Users\User\AppData\Local\Temp\{XXXXXXXX-XXXX-XXXX-XXXX-
XXXXXXXXXXXX}\Target.exe' /s /ig`"`{XXXXXXXX-XXXX-XXXX-XXXX-
XXXXXXXXXXXX`}`" /instance=1 /f3`"C:\Recordings`" /f4`"uninstall-log.txt`"
/f1`"C:\Users\User\AppData\Local\Temp\`{XXXXXXXX-XXXX-XXXX-XXXX-
XXXXXXXXXXXX`}\setup.iss`"
/f2`"C:\Users\User\AppData\Local\Temp\`{XXXXXXXX-XXXX-XXXX-XXXX-
XXXXXXXXXXXX`}\setup.log`" /removeonly"
任何人都可以對此有所瞭解嗎?我不知道爲什麼它會失效。謝謝!
爲什麼在/ f之後有一個雙引號?您已將字符串'「'example.exe'/ f」'分隔,但{GUID}不是由引號分隔的。 –
@TonyHinkle我相信example.exe會引用雙引號。刪除它們導致powershell錯誤C:\ Users \ User \ AppData \ Local \ Temp \ {XXXXXXXX-XXXX-XXXX-XXXX- XXXXXXXXXXXX} \ Target.exe/s'不被識別爲cmdlet的名稱,功能,腳本文件或可操作的程序。 – sirdank