繁体   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