2017-02-15 20 views
0

Я пытаюсь использовать exec для запуска команды, такой как dir с cmd с использованием кода tcl, однако окно терминала открывается, и я не могу сохранить результат, когда команда имеет запустить, в переменную?exec cmd команды с использованием tcl без открытия окна терминала

Это то, что я пытался до сих пор,

set res [exec cmd.exe /c "dir" &]; 

Когда я печатаю эту переменную, используя,

puts $res 

я вернусь только три или четыре цифры кода, а не фактическое результат выполнения команды.

Любая помощь приветствуется.

ответ

2
set res [exec cmd.exe /c "dir" &] 

& в конце ехес указывает на то, что команда будет обрабатываться в фоновом режиме. Возвращаемый результат - это идентификатор процесса команды.

Чтобы сделать то, что вы хотите использовать:

set res [exec cmd.exe /c "dir"] 

Было бы гораздо более эффективным и менее ресурсоемким голодный использовать встроенный glob команду, чтобы получить список файлов или поиск файла.

set res [glob *.txt] 

set res [glob -directory {C:/Program Files} *] 

Ссылки: execglob