![]() |
распаковать все файлы с расширением 7z в каталог, содержащий текущую дату
Здравствуйте.
Требуется помощь в написании bat-файл. Задача: из заданного в командной строке каталога распаковать все файлы с расширением 7z в каталог, содержащий текущую дату. Используя цикл FOR, ввести проверку ошибок: в каталоге нет ни одного файла с расширением 7z. Своими силами написал следующий код код: Код:
cls Заранее благодарен. P.S. Требуется реализация именно через for, ни как иначе. |
Цитата:
Примерно так (если не брать извращения с проверкой наличия файлов по «for» вместо «exist»): |
Цитата:
Цитата:
|
Я даже не особо представляю, как сие может выглядеть. Ну, давайте попробуем прикрутить «for» искусственно, например:
|
Iska
1 Добавил в конец Pause, иначе не мог увидеть сообщений 2 Запуск батника производил без параметров, поэтому исправил (только для тестов) строку Код:
set sFolder=%~dp0 2.2 На Win XP получил Can't find 7-Zip executive in [c:\Program Files\7-Zip] Причина: разные инсталляторы 7-Zip по разному пишут путь в реестр, msi пишут с завершающим слешем, а exe без оного. 3 Присвоение переменной %PathTo7Zip% оригинально, но для начинающих будет непонятно. К тому же при любом (без знаний метода формирования переменной) изменении имени переменной и\или имени п\п :GetPathTo7Zip приведет к непредсказуемым результатам. 4 После того как подправил получение пути батник заработал, но... 4.1 При отсутствии архивов в папке сообщение Not found any 7-zip archivies in [%sFolder%] не вывелось 4.2 После добавления в папку запароленного архива (получилось это случайно), батник на нем остановился для ввода пароля. Ввел неправильный пароль (правильный просто не помню) и получил сообщение Not found any 7-zip archivies in [E:\Temp\] 4.2.1 Но если этот запароленный архив не будет последним в списке обрабатываемых архивов, то сообщение снова не выводится Немного подправил Ваш вариант и получилось это: Код:
@Echo Off |
Время: 10:07. |
Время: 10:07.
© OSzone.net 2001-