Подскажите по батнику, который будет удалять всё содержимое папки по расписанию
ОС WinServer 2000
Вариант:
Код:
cmd.exe pushd "d:\папка\" && (rmdir /s /q "d:\папка\" & popd) 2>nul
отлично работает, если его запускать из cmd вручную. Но не пашет, если сделать его в файле и запускать файл. Что ему не так?
|
Цитата:
Цитата Spooller
Но не пашет, если сделать его в файле и запускать файл. Что ему не так? »
|
Упакуйте этот файл в архив, приложите архив к сообщению.
|
Spooller, Сохраните батник в кодировке cp866 или cp1251 (в этом случае необходимо сменить кодировку консоли: chcp 1251)
|
Об этом я подозревал и при первых затруднениях перешёл на Bred (актуальная версия с офсайта для Win2000). Там стоит Unicode и кодировку сменить нельзя (остальное серое). Notepad++ делает крякозябры, Notepad++Mod делает вместо оных либо квадратики либбо какие-то служебные символы.
Однако, если я делаю эксперименты с папкой "123", то результат всё равно тот же.
Цитата:
Цитата Foreigner
сменить кодировку консоли: chcp 1251 »
|
Это просто добавить первой строчкой?
|
Spooller, Просто в блокноте выберите нужную кодировку (OEM это 866, а 1251 по умолчанию). В консоли же по умолчанию кодировка 866 (т.е. ОЕМ). Если в названиях папок есть кириллица, а батник в 1251, то надо в самом батнике это указать:
Код:
@echo off
1>nul chcp 1251
2>nul (pushd "d:\папка" && rmdir /s /q "d:\папка\")
popd
|
Сработало. Вероятно, не хватало первой строчки.
Но в notepad кодировки, кстати, иначе чуть кличут. Как я понимаю, 866=ANSI
|
Цитата:
Цитата Spooller
Как я понимаю, 866=ANSI »
|
Неправильно понимаете. Обычно считается так: OEM/866 и ANSI/1251. Пакетные файлы должно хранить именно в OEM/866 (и Блокнот тут не помощник), и никаких «chcp 1251» без особой на то нужды. Ваш случай уж точно не нуждается.
|
Вы меня запутали. То, что неправильно понимаю по соответствию кодировок - принимается, буду знать.
А вот остальное - совсем не понимаю. Пакетные файлы это cmd и bat? Почему именно в 866? Почему "никаких"? И почему мой не нуждается?
|
Потому, что кодировка в cmd 866, так проще.
Цитата:
Цитата Spooller
И почему мой не нуждается? »
|
Потому, что его достаточно сохранить в 866. Правда потом могут возникнуть трудности при редактировании, но это проблема редакторов. FAR-овский сам определяет кодировку файла.
|
То есть по сути Вы считаете указание кодировки просто лишней операцией и в этом всё дело?
|
Если батник в 1251, то указывать необходимо, иначе не получится сделать pushd. Если в 866, то указывать кодировку не надо, т.к. cmd и так в нужной кодировке.
|
Цитата:
Цитата Spooller
Пакетные файлы это cmd и bat? »
|
Да.
Так решила Microsoft, что кодовая страница в DOS для СССР будет cp866 ( Альтернативная кодировка — Википедия). В командной строке Windows кодовая страница осталась той же (несмотря на то, что для самой Windows умолчальная кодовая страница — 1251).
Если пакетный файл сохранён в кодовой странице OEM/866 — смена кодовой страницы не требуется.
Цитата:
Цитата Spooller
И почему мой не нуждается? »
|
Потому что он превосходно будет работать и без смены кодовой страницы. Главное — сохранить его в OEM/866.
Цитата:
Цитата Spooller
То есть по сути Вы считаете указание кодировки просто лишней операцией и в этом всё дело? »
|
У Вас получается аж две лишних операции — пакетный файл в кодировке ANSI/1251 и требующаяся из-за этого смена кодовой страницы в нём.
|
Время: 18:56.
© OSzone.net 2001-