Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Не корректно работает батник. (http://forum.oszone.net/showthread.php?t=217893)

ipvinner 13-10-2011 18:22 1772625

Не корректно работает батник.
 
Создал файлик 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 1772630

Цитата:

Цитата ipvinner
ошибку, что неверный том или пароль

Кириллица в пароле есть?

ipvinner 13-10-2011 18:28 1772632

Petya V4sechkin, нет

Petya V4sechkin 13-10-2011 19:47 1772681

ipvinner, помимо неправильной кодировки CMD-файла, трудно что-либо придумать.

Foreigner 13-10-2011 22:49 1772803

ipvinner,
Цитата:

Цитата ipvinner
cd C:\Program Files\TrueCrypt »

Путь в кавычки.

Iska 14-10-2011 02:22 1772906

Foreigner, по умолчанию, расширенная обработка команд включена. Для CD это означает, что пути с пробелами допустимы:
читать дальше »
Цитата:

Цитата 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 1772919

ipvinner, а почему не указать точное имя контейнера? Или оно заранее не известно?

ipvinner 17-10-2011 11:52 1775176

Так, если отдельно вводить эти команды, то они прекрасно отрабатывают. А вот в скрипте не хотят

Iska 17-10-2011 12:42 1775213

ipvinner, что значит: «отдельно»? Распишите в подробностях.

ipvinner 17-10-2011 12:45 1775218

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

kiripanda 17-10-2011 13:36 1775266

Потому что в пакетных файлах %% нужно удваивать

Iska 17-10-2011 13:36 1775267

Цитата:

Цитата ipvinner
Почему-то скрипт не кушал процент в пароле. Убрал в пароле процент - все заработало. Если честно не понятно, почему тогда просто в командной строке проходило. »

Символ процента имеет особый смысл в командном процессоре. Попробуйте его удваивать, экранировать (что сработает), или пусть пароль запрашивает сам TrueCrypt — это самый правильный подход.


Время: 08:10.

Время: 08:10.
© OSzone.net 2001-