2016-02-06 2 views
0

Моя проблема здесь в том, что я не могу передать аргументы через свою программу. Я не уверен, как это объяснить, но вот оно:Запуск файла через программу с аргументами

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

Например:

AtomScript.exe main.atom -> Program runs

Когда я хочу, чтобы запустить его с помощью пакетного файла:

main.atom -> Program runs

Теперь, когда я хочу, чтобы передать аргументы через программу с помощью команды AtomScript в пакетном файле:

AtomScript.exe main.atom arg1 arg2 -> Program runs with arguments

Аргументы передаются. Но когда я хочу использовать простую команду main.atom, чтобы запустить его с аргументами он не работает:

main.atom arg1 arg2 -> Program runs without arguments

Я не уверен, что делать в этой точке. Какие-либо предложения?

ответ

0

main.atom не является исполняемым файлом, поэтому он не может принимать какие-либо параметры

Windows, знает, какая программа должна быть запущена, и делает это (игнорируя любые параметры)

Только если вы запустите исполняемый файл напрямую вы можете определить параметры (первый из которых main.atom)

, например:

C:\>assoc .txt 
.txt=txtfile 

C:\>ftype txtfile 
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1 

assoc определяет, какая Filetype, что расширение является («txtfile»)

ftype определяет, что должно быть сделано для этого типа файла (запуск блокнота)

Вы можете видеть, есть только один параметр %1 (имя файла (main.atom)). Конечно, вы могли бы расширить его с большим количеством параметров (должен быть запущен от имени администратора):

ftype txtfile=%SystemRoot%\system32\NOTEPAD.EXE %* 

(что нет особого смысла в этом примере), но я не рекомендую (это просто делается на вашем компьютер). Лучше используйте «официальный путь»: в пакетном файле выполните точно так же, как и в командной строке: запустите исполняемый файл с требуемыми параметрами:

AtomScript.exe main.atom arg1 arg2  
+0

Так что мне нужно поставить кавычки вокруг% *? – arjay07

+0

ах - хороший улов. Если вы ставите кавычки вокруг него, это всего лишь один аргумент. Я удалил их из своего примера (недостаток: не существует параметров с пробелами). Но опять же: это не рекомендуется - используйте его осторожно и мудро. – Stephan

+0

в любом случае сделать файл исполняемым? – arjay07

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