我想将一个命令行参数的大部分特殊字符混合传递给exe。 exe文件由bat文件调用。
语法是这样的:
设置arg1 =“newData!@#$ %% ^& ()( * )://///; >< | + = - “
mypath中= “d:\ MyExeLocation” %MyPath%\ MyExe.exe%arg1%
上面的一个正在工作,但是如果我在arg1字符串中添加双引号(“)它就无法工作。请你告诉我如何逃避它。我试图通过^逃避它,”和\也。它不起作用。如果我使用\,字符串包括\以及双引号。其他两个^和“没有工作抛出一些错误
最终我想传递arg1中的任何特殊字符。你能告诉我你的建议???
预先谢谢 罗伯特。
答案 0 :(得分:0)
忘记我老了你的单引号。我在XML文件中使用过它。没关系。
如果您想要一个双引号,您必须加倍双引号。例如,如果要将字符串“a”传递给应用程序,则必须使用“”“a”“”作为参数。
为了测试参数,我使用以下bat文件
set var=%*
c:\cmd.exe %var%
和cmd.exe是以下C#程序
public class Program
{
static void Main(string[] args)
{
if (args != null)
{
Console.WriteLine(args.Length);
foreach (var s in args)
{
Console.WriteLine(s);
}
}
}
}