![](/img/trans.png)
[英]Double quotes not escaping from string when calling Powershell command from within Batch script?
[英]Escaping arguments when passing %* from batch script as $args to powershell script
我有一個批處理腳本,它可以接收任意數量的參數(文件列表),並使用以下命令結構執行一個powershell腳本:
"%POWERSHELL%" -Command "%SCRIPT%" %*
%POWERSHELL%
是PowerShell.exe
的路徑, %SCRIPT%
是我的powershell腳本,該腳本解釋將%*
接收為$args
。 問題是,如果我傳入文件名test$file.name
類的東西,PowerShell會收到test.name
,大概是因為$file
被解釋為空變量。
是否有一種好方法可以從批處理腳本中用單引號或反引號將每個參數轉義,或者以其他方式處理?
在將%*傳遞給PowerShell腳本之前,請轉義$字符。
set ARGS=%*
set ARGS=%ARGS:$=`$%
"%POWERSHELL%" -Command "%SCRIPT%" %ARGS%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.