以下PowerShell脚本:
$srch = '-v\s*(.*?)\s*=\s*%1'
$repl = "-v `'`$1'` = %1"
(Get-Content batchfile.bat) -replace $srch, $repl | Set-Content rave.bat
从Windows 8.1计算机生成这些结果:
sqlcmd -S rave -v 'test me' = %1 -i rave_params.sql -o alert.txt
相同的脚本从Windows 2012服务器生成这些结果:
sqlcmd -S rave -v test me = %1 -i rave_params.sql -o alert.txt
该脚本应该产生结果,在文本周围留下单引号。它在Windows 8.1机器上运行良好,但在Windows Server 2012上运行不正常。我有什么想法可以在Windows Server 2012上产生相同的结果?
答案 0 :(得分:0)
如果没有样本输入,很难测试,但这会给你带来更好的结果吗?
$srch = '-v\s*(.*?)\s*=\s*%1'
$repl = @'
-v '$1' = %1
'@