簡體   English   中英

將%*從批處理腳本作為$ args傳遞到Powershell腳本時轉義參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM