Передача специальных символов в exe через командную строку - PullRequest
0 голосов
/ 23 декабря 2010

Я хочу передать смесь из большинства специальных символов аргументов одной командной строки в exe. Exe вызывается с помощью bat-файла.

синтаксис выглядит примерно так:

файл sample.bat

set arg1 = "newData! @ # $ %% ^ & () (*): /////;> <| + = -" </p>

MyPath = "D: \ MyExeLocation" % MyPath% \ MyExe.exe% arg1%

Над одним из них работает, но он не работает, если я добавлю двойные кавычки (") в строку arg1. Не могли бы вы сказать мне, как избежать этого. Я пытался избежать его с помощью ^," и \ также. это не работает. если я делаю с \, строка также включает \ вместе с двойной кавычкой. два других ^ и "не работают, выбрасывая некоторую ошибку

В конечном итоге я хочу передать любые специальные символы в arg1. Не могли бы вы дать мне ваши предложения ???

Заранее спасибо Роберт.

1 Ответ

0 голосов
/ 23 декабря 2010

Забудь про одиночную цитату, которую я тебе стар. Я использовал это в файле XML. Nevermind.

Вы должны удвоить двойную кавычку, если хотите одну двойную кавычку. Например, если вы хотите передать строку «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);
            }
        }
    }
}
...