通过命令提示符将特殊字符传递给exe

时间:2010-12-23 07:24:11

标签: dos

我想将一个命令行参数的大部分特殊字符混合传递给exe。 exe文件由bat文件调用。

语法是这样的:

sample.bat文件

设置arg1 =“newData!@#$ %% ^& ()( * )://///; >< | + = - “

mypath中= “d:\ MyExeLocation” %MyPath%\ MyExe.exe%arg1%

上面的一个正在工作,但是如果我在arg1字符串中添加双引号(“)它就无法工作。请你告诉我如何逃避它。我试图通过^逃避它,”和\也。它不起作用。如果我使用\,字符串包括\以及双引号。其他两个^和“没有工作抛出一些错误

最终我想传递arg1中的任何特殊字符。你能告诉我你的建议???

预先谢谢 罗伯特。

1 个答案:

答案 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);
            }
        }
    }
}