Каково различие между выполнением .bat от cmd строки по сравнению с двойным щелчком?

У меня есть .bat сценарий с командами ftp (все в одном) подобными этому. Посмотрите 5-й down:FTP - Разрешение Переменных среды - Создание сценария FTP на лету во времени выполнения и использовании переменных в рамках сценария FTP

Когда я выполняю .bat из командной строки, все работает хорошо. Файлы передаются (в моем случае) с сервера на мой компьютер.

Однако, когда я выполняю этот тот же .bat файл путем двойного щелчка, он больше не интерпретирует сценарий ftp правильно.

Все другие .bat файлы, кажется, работают то же, если по ним дважды щелкают по сравнению с названным из командной строки. Разве это не будет работать здесь? Если так, почему нет?

Править:
Кажется, что проблема состоит в том, когда это достигает, первый ftp управляют, чтобы использовал переменную.
Например, это откроется и соединится прекрасный, но затем моя следующая команда является получением с переменной для имени файла. Это, может казаться, не читает имя переменной и просто звонит, добираются. Однако я не вижу эту проблему, когда я называю летучую мышь от cmd строки....

Править
Устраненная проблема, см. мой ответ ниже.

Спасибо.

4
задан 08.09.2013, 22:03

3 ответа

ОТВЕТ:
Мои переменные были объявлены перед для цикла, который сохраняет команды ftp во временном файле и затем заменяет переменные значениями. Таким образом в той точке, не было никаких переменных для замены тех используемых в сценарии ftp.

Только казалось, что это работало из командной строки, потому что, после того как я назвал это первым разом это, вероятно, с ошибками там, но если я назвал его снова, не закрывая консоль, переменные были теперь сохранены в памяти. Оттуда затем было похоже, что это всегда работало от консоли.

После того как они были сохранены в памяти, не имело значения, что для цикла был перед переменными. Переменные были теперь сохранены в памяти после открытия его в первый раз.

При двойном щелчке это открывалось для первой сессии, каждый раз, и переменные были удалены в памяти после того, как это закрылось автоматически. Так в этом случае это открылось и закрылось, каждый раз, когда я дважды щелкнул по нему.

Открытие для первой сессии по сравнению с вызовом его снова в той же консоли, не закрывая его было основным различием здесь. Называя его в, первый раз переменные были бы сохранены, ПРЕЖДЕ ЧЕМ после ftp сценарий был уже создан.

Не стесняйтесь редактировать это, если можно сделать это более ясным...

1
ответ дан 07.12.2019, 20:48

Это очень твердо, не зная, как сценарий перестал работать.

Основным различием между выполнением из окна командной строки и двойным щелчком был бы рабочий каталог.

Вы не можете изменить это на нормальных пакетных файлах, но можно создать ярлык на пакетный файл и измениться Start in: каталог там.

alt text

2
ответ дан 07.12.2019, 20:48

Я предположил бы, что Ваш текущий каталог установлен неправильно при двойном щелчке по .bat файлу и именно это заставляет его не находить сценарий FTP.

Попытайтесь добавить echo %CD% к пакетному файлу и видят то, что он печатает в каждом случае.

1
ответ дан 07.12.2019, 20:48

Теги

Похожие вопросы