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