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