2013-10-09 39 views
0

有关在下面的语句中正确地转义&符号的快速问题,这只是命令行执行。如何正确地转义执行语句中的&符号

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet /R:global_General_Assets_P&E 

我已经尝试了许多不同的报价迭代,没有运气。

在此先感谢!

回答

1

&符号不需要特殊转义,如果它在单引号或双引号字符串中。

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet '/R:global_General_Assets_P&E' 

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet "/R:global_General_Assets_P&E" 

应该工作。这是假设$cmdline只包含一个exe的路径。确保$cmdLine不包含任何附加参数...

而且和Ansgar建议的一样,如果这些方法不起作用,请提供错误详细信息。

+0

这工作。我引用了引号,因为这是一种我更加适应的格式。谢谢! –

0

我打算假设$CmdLine是您想要调用的可执行文件或批处理文件,并且该行的其余部分是您想要发送到$ CmdLine的参数集。

你可以尝试这样的事情:

& $CmdLine "-f:passwordFile.txt" "/A:Coreplan" "/U:admin" "/D:BalSheet" "/R:global_General_Assets_P&E" 
+1

这将单个字符串参数传递给包含'-f:passwordFile.txt/A:Coreplan/U:admin/D:BalSheet/R:global_General_Assets_P&E的可执行文件' – latkin

+0

您是正确的,这使得答案混淆。我更正了更正的答案。重要的一点是,无论参数数组中有多少个参数,powershell都会忽略'&'是否用单引号或双引号封装。 – Jim

+0

感谢您的编辑。我已经删除了我的-1 – latkin

2

PowerShell中的转义字符是反引号(`),所以尝试改变/R:global_General_Assets_P&E/R:global_General_Assets_P`&E

& $CmdLine -f:passwordFile.txt /A:Coreplan /U:admin /D:BalSheet /R:global_General_Assets_P`&E 

如果不工作:请用您收到的错误消息更新您的问题。

+0

谢谢,这仍然报错:'E'不被识别为内部或外部命令, 可操作的程序或批处理文件。 –

+0

尝试皮带和吊带:''/ R:“global_General_Assets_P'&E”'' –