передача аргументов из команды tcl exec в пакетный файл

#batch-file #tcl

#пакетный файл #tcl

Вопрос:

Я использую devcon.exe чтобы включить / отключить USB-устройства.У меня есть PID и VID с USB-устройства, и я хочу использовать команду exec с командным файлом, чтобы отключить это устройство.

Сценарий TCL:

 set str [exec "VID_$VIDamp;PID_$PID"] 
 

пакетный файл:

 devcon.exe disable %1
 

и я получаю сообщение об ошибке, потому что аргумент, который я передаю cmd, является только первой частью моей строки: VID_ $VID. некоторые из способов amp; не позволяют мне передавать полный аргумент. есть ли у вас какие-либо идеи о том, как передать полный аргумент с помощью ‘amp;’ в cmd?

Комментарии:

1. ну, вам нужно экранировать любые amp; символы, предварительно ожидая их ^ символом.

2. с помощью чего я включал / отключал USB-устройства devcon.exe заключается в создании строки в TCL без использования «/» или «amp;».просто » «.поэтому я использовал: set str «USB VID_ $ VID * PID_ $ PID» и передал его devcon с помощью: set output [exec C:/disable.bat»$ str»] и это сработало!!

3. отлично! я рад, что вы это поняли.