Dimych
|
Posted: Mon May 12, 2008 01:35 Post subject: [Bug?] Неверная передача параметров из em_команды |
|
|
Понадобилось написать VB-скрипт с передачей из em_команды 2-х параметров "Исходный путь" и "Путь назначения".
Чтоб понять как передаются параметры, был использован следующий bat-файл:
Code: | @echo off
echo 1 param - [%1]
....
echo 9 param - [%9]
echo Press any key
pause
exit |
В первую очередь выяснилось, что TC НЕ заключает В кавычки автоматом у параматров %P и %T, если они содержат пробел(ы).
Теперь о проблеме. При задании в em_команде строки параметров в виде:
и находясь в панелях c:\Documents and Settings\ и c:\Program Files\, по команде на входе батника получил:
Code: | 1 param - [c:\Documents]
2 param - [and]
3 param - [Settings\" "c:\Program]
4 param - [Files\] |
Когда же создал кнопку в ButtonBar с аналогичными параметрами, на входе батника получил:
Code: | 1 param - ["c:\Documents and Settings\"]
2 param - ["c:\Program Files\"] | то есть правильно.
А когда подкорректировал em-команду:
(убрал последнюю кавычку), по команде (и по кнопке) на входе батника получил
Code: | 1 param - ["c:\Documents and Settings\"]
2 param - ["c:\Program Files\] |
Тоже нормальное поведение. Меня пока устроило, так как VBS сам очищает аргументы от кавычек.
Если же в строке параметров крайним справа или слева стоит параметр, который TC сам автоматически заключает в кавычки, то все параметры передаются нормально (напр. param=%N "%P" "%T").
P.S. Интересно, почему TC не заключает в кавычки содержание параметра %M с пробелам(и), а %N заключает?
WinXP Pro SP2, TC 7.03 |
|