unreal666
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Ещё вопрос: почему command_1 в скрипте не работает? | система по ассоциациям файлов определяет, что bat-файл запускается с помощью cmd => строка Код: "%~dp0dirCopy.bat" "%from%" "%to%" | разворачивается в Код: cmd /k "%~dp0dirCopy.bat" "%from%" "%to%" | А в справке cmd написано Цитата: Если указаны ключи /C или /K, то остальная часть командной строки после такого ключа обрабатывается как командная строка, а обработка символов кавычек (") ведется по следующим правилам: 1. Если выполняются все перечисленные ниже условия, то символы кавычек в командной строке сохраняются: - ключ /S отсутствует - есть ровно два символа кавычек - между ними нет других специальных символов, как то: &<>()@^| - между ними имеются один или несколько пробелов - строка, заключенная в кавычки, является именем исполнимого файла. 2. В противном случае, проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется. | Т.е. в данном случае кавычек больше 2-ух => крайние кавычки удаляются => в результате попытка выполнения кода Код: %~dp0dirCopy.bat" "%from%" "%to% | что точно не является корректным. Если хочешь выполнить батник в таком варианте, то делать так Код: start "Копирование дистрибутива" cmd /k ""%~dp0dirCopy.bat" "%from%" "%to%"" | т.е. добавить cmd /c или cmd /k и обрамить весь код, передаваемый cmd, двойными кавычками. | Всего записей: 6671 | Зарегистр. 14-02-2005 | Отправлено: 02:08 09-08-2013 | Исправлено: unreal666, 02:10 09-08-2013 |
|