【发布时间】:2019-11-14 06:21:08
【问题描述】:
尽管使用“about_quoting_rules”查看了有关单引号和双引号的文档,但我似乎无法获得所需的输出。
一点背景故事:
我有一个 excel 文档,我正在使用 powershell 在每个条目上创建一个 foreach。这反过来又被用于生成 robocopy 命令以启动同步作业。
我的脚本中与此相关的部分如下:
Foreach($script in $roboSource)
{
$StandardSwitches = "/copy:DAT /s /dcopy:DAT /V /L"
$log = "/log:`"$($logPath)$($logFileName)`"" #`
$FileSource = "$($script.a)"
$FileDestination = "$($script.a)"
$RoboArgs = "I:\" + $FileSource + " " + "Z:\" + $FileDestination + " " + $StandardSwitches + " " + $log
}
所以,现在,$RoboArgs 输出:
I:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX Z:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX /copy:DAT /s /dcopy:DAT /V /L /log:"C:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX"
我需要 $RoboArgs 输出的是:
"I:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX" "Z:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX" /copy:DAT /s /dcopy:DAT /V /L /log:"C:\XXXXX\XXXXX\X\XXXXXXX\XXXXX\XXXX"
我已经尝试将反引号添加到字符串中,并将字符串和变量封装在一起:
$RoboArgs = `""I:\" + $FileSource`"" + " " + "Z:\" + $FileDestination + " " + $StandardSwitches + " " + $log
但无论我尝试什么,都不会产生我正在寻找的输出。任何朝着正确方向的推动都会非常有帮助和感激!
【问题讨论】: