在我的命令字符串中使用"
时,双引号会被解释。
$printername="Intouch Printer"
print($printername)
$command ='D:\spool12\spool.exe '+ $_.FullName + ' "'+ $printername+'"'
print($command)
iex $command
我正在执行此代码时收到此信息:
> D:\spool12\spool.exe D:\Spool Files-20170113T061110Z\Spool Files\Un
> Readable\creame and fudge\00143.SPL IntouchPrinter
相反,我希望它像:
> D:\spool12\spool.exe D:\Spool Files-20170113T061110Z\Spool Files\Un
> Readable\creame and fudge\00143.SPL "IntouchPrinter"
答案 0 :(得分:4)
我更喜欢在这种情况下使用格式字符串:
$command = 'D:\spool12\spool.exe {0} "{1}"' -f $_.FullName, $printername
答案 1 :(得分:0)
你也可以像这样包装字符串:
$command = @"
D:\spool12\spool.exe "Intouch Printer"
"@
iex $command
答案 2 :(得分:0)
阅读About Quoting Rules,了解您需要了解的关于引号和转义它们的内容。
在您的情况下,您需要在整个命令周围使用双引号,然后使用反引号来转义$printername
周围的引号。
您还需要使用Subexpression operator $()
,以便正确评估FullName属性:
$command = "D:\spool12\spool.exe $($_.FullName) `"$printername`""