0

以下 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 上产生相同的结果吗?

4

1 回答 1

0

没有样本输入就很难测试,但这会给您带来更好的结果吗?

$srch = '-v\s*(.*?)\s*=\s*%1'
$repl = @'
-v '$1' = %1
'@
于 2014-03-13T21:33:03.083 回答