2013-10-15 1 views
1

Можно ли передать пробел программе C# в качестве аргумента командной строки?(Как) вы можете передать пробел в качестве аргумента командной строки в C#?

Я пишу скрипт, который анализирует текстовый документ, и хотел бы, чтобы пользователи могли указать свой собственный разделитель, а не жестко-кодирующий.

Однако, если разделитель представляет собой пробел, то программа, похоже, обесценивает его как аргумент, независимо от того, окружена ли он кавычками или нет.

+0

См. http://stackoverflow.com/questions/6427732/how-can-i-escape-an-arbitrary-string-for-use-as-a-command-line- аргумент-в-windo – Tarik

+0

если в командной строке вы выполняете «yourProgram.exe» test «" "' then it wi Получаем два аргумента, один 'test' другой' '' 'который является пространством, это должно работать. – Habib

ответ

1

Environment.CommandLine предоставит вам полную командную строку, включая любые пробелы. Хотя я считаю, что вашим пользователям будет сложно передать вкладки или разрывы строк. Я бы предложил, чтобы они передавали код (-ы) для разделителя (ов) вместо этого.

1

Это может помочь:

Escape command line arguments in c#

Из того, что некоторые другие подобные вопросы, используя Regex, кажется, путь.

(не действительно сделал много C#, я боюсь, но только видел это на главной странице)

1

вы можете передать в кавычках пробельных «» Например

FileParsing.exe arg1 «» arg3 "some other arg"

+0

Это дает мне IndexOutOfRangeException - то есть он думает, что у него только 3 аргумента, а не 4. (я явно подсчитываю аргументы, чтобы дать пользователю обратную связь, если их ввод чего-то отсутствует, и у него определенно есть проблемы с «».) – Ollyver

+0

Он работал здесь для меня. Я нахожусь в Windows 7 и запускаю стандартный cmd.exe –

Смежные вопросы