Войти

Показать полную графическую версию : [решено] Не корректно работает батник.


ipvinner
13-10-2011, 18:22
Создал файлик mount.bat на рабочем столе со следующим содержанием:
cd C:\Program Files\TrueCrypt
TrueCrypt.exe /auto devices /beep /cache n /history n /letter t /password "ваш пароль здесь" /quit background
pause.
Если вводить команды последовательно через командную строку, то все корректно отрабатывает - диск монтируется.
Но вот запуская батник с тем же содержанием выводит ошибку, что неверный том или пароль. Текст пробовал просто копировать. С правами админинстратора такая же ситуация.

Petya V4sechkin
13-10-2011, 18:27
ошибку, что неверный том или пароль
Кириллица в пароле есть?

ipvinner
13-10-2011, 18:28
Petya V4sechkin, нет

Petya V4sechkin
13-10-2011, 19:47
ipvinner, помимо неправильной кодировки CMD-файла, трудно что-либо придумать.

Foreigner
13-10-2011, 22:49
ipvinner, cd C:\Program Files\TrueCrypt »
Путь в кавычки.

Iska
14-10-2011, 02:22
Foreigner, по умолчанию, расширенная обработка команд включена. Для CD это означает, что пути с пробелами допустимы:

Изменение команды CHDIR при включении расширенной обработки команд:

Имя текущего каталога в строке вызова преобразуется к тому же регистру символов, что и для существующих имен на диске. Так, команда CD C:\TEMP на самом деле сделает текущим каталог C:\Temp, если он существует на диске. Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет перейти в подкаталог, имя которого содержит пробелы, не заключая все имя каталога в кавычки. Например:
cd \winnt\profiles\username\programs\start menu
приводит к тому же результату, что и:
cd "\winnt\profiles\username\programs\start menu"
При отключении расширенной обработки команд используется только второй вариант.
Но Вы меня натолкнули на мысль: может быть, коллега ipvinner пытался запускать пакетный файл с другого диска? И надо не просто «CD», а «CD /D»?!

Лучше всего, конечно, просто:
"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /auto devices …

ShaddyR
14-10-2011, 02:51
ipvinner, а почему не указать точное имя контейнера? Или оно заранее не известно?

ipvinner
17-10-2011, 11:52
Так, если отдельно вводить эти команды, то они прекрасно отрабатывают. А вот в скрипте не хотят

Iska
17-10-2011, 12:42
ipvinner, что значит: «отдельно»? Распишите в подробностях.

ipvinner
17-10-2011, 12:45
Почему-то скрипт не кушал процент в пароле. Убрал в пароле процент - все заработало. Если честно не понятно, почему тогда просто в командной строке проходило.

kiripanda
17-10-2011, 13:36
Потому что в пакетных файлах %% нужно удваивать

Iska
17-10-2011, 13:36
Почему-то скрипт не кушал процент в пароле. Убрал в пароле процент - все заработало. Если честно не понятно, почему тогда просто в командной строке проходило. »
Символ процента имеет особый смысл в командном процессоре. Попробуйте его удваивать, экранировать (что сработает), или пусть пароль запрашивает сам TrueCrypt — это самый правильный подход.




© OSzone.net 2001-2012