2017-02-17 4 views
0

У меня есть успех, выполняющий программу, которую я написал (с расширением .exe) из командной строки Windows с либо целочисленный параметр, либо перенаправление для указания ввода из TXT-файла. Есть ли способ сделать то и другое?Как запустить исполняемый файл из Windows cmd и передать его как параметр аргумента, так и перенаправление для ввода файла?

Например, тот же проект в Linux принимает './a.out 1 < testfile.txt', так что 1 находится в массиве arg, а файл testfile.txt перенаправляется как вход. Тот же ввод в Windows не будет работать. Я пробовал что-то вроде ./a.exe (1 & '< testfile.txt') без везения.

Благодарим Вас за любые и все полезные ответы, Тайлер

+2

'a.exe 1

+0

@IgorTandetnik не работает на этом входе с ошибкой: «Ввод или вывод не могут быть перенаправлены, потому что указанный файл недействителен». Один и тот же файл может быть указан для использования с той же программой, но при компиляции с помощью gcc вместо окон –

ответ

2

Это не будет работать:

a.exe 1< testfile.txt 

потому что 1< интерпретируется как «перенаправлять стандартный дескриптор # 1». Для большинства приложений, это будет работать:

a.exe 1 < testfile.txt 

(обратите внимание на дополнительное пространство!)

Если конкретное применение дросселей на дополнительное пространство, и по каким-то причинам вы не можете исправить, что это еще один опция:

<testfile.txt a.exe 1 
+0

Я уже пробовал тот, который, как вы сказали, должен работать, это не так. Я попробовал еще раз на всякий случай. Файл находится в том же каталоге, что и .exe. Что касается вашего другого варианта, может быть неплохо попробовать, но я отлаживаю Visual Studio и могу только добавлять аргументы команды. Он работает для отладки linux, но не Windows. Спасибо за возможные варианты. –

+0

* Я отлаживаю Visual Studio * - тогда почему в вашем вопросе говорится, что вы запускаете свой исполняемый файл из командной строки Windows? Это не одно и то же! –

+0

При отладке в Visual Studio перенаправленный входной файл должен находиться в каталоге проекта, а не в том же каталоге, что и исполняемый файл. –

0

Попробуйте сочетание type command и pipe.

что-то вроде:

type testfile.txt | a.exe 11 

Вы, возможно, придется Твик это. Не можете проверить его здесь на Linux:]

+0

это, вероятно, хороший выбор для выполнения, но для отладки я могу только добавлять аргументы для отладчика для прохождения во время выполнения. –

+0

Вы можете использовать это также во время отладка ... В настройках VS-проекта вы можете указать полную последовательность программ для запуска при запуске отладки ... – Kupto

+0

@ Kupto, который работает в принципе, но на практике это довольно сложно, потому что это означает, что вы отлаживаете 'cmd.exe 'а не ваш исполняемый файл. –

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