siways Опубликовано 3 марта, 2019 Опубликовано 3 марта, 2019 (изменено) Добрый день. У меня есть .bat который копирует файлы с одного сетевого диска на сервер архивирует все что скопировал через 7z и дальше распределяет файлы по папкам на сервере и удаляется из определенной папки после скачивания с сетевого диска (Структура: Копируются файлы с сетевого диска в переменную папку на сервере - Архивируется - распределяется по папкам на сервере - файлы удаляются с папки где происходит архивирование (переменной папки) - файлы удаляются с сетевого диска), но архив создается даже в том случае если файлы на сетевой диск не выложили, архив создается пустым. Как сделать условие при котором архивирование бы не происходило если с сетевого диска не было скачено ни одного файла (файлы с названием *KD*.txt *OP*.txt ). Примечание: Копирование KD и OP файлов происходит в разных действиях, сначала KD, потом OP, а значит нужно создавать 2 условных опрератора на каждое название файлов. Тоесть нужна помощь в том чтоб проверить переменную папку на наличие файлов *KD*.txt и *OP*.txt, если файлов KD нет, то без архивации переход к следующему поиску файлов OP, если OP тоже нет в переменной папке, то сценарий скрипта "exit" до начала архивирования, если файлы есть то архивация в zip и распределение файлов по папкам на машине "xcopy".. Если я не очень понятно объяснил заранее прошу прощения. Я максимально постараюсь дать подробности в комментариях если будут какие либо вопросы в уточнениях. Буду рад любой помощи, спасибо! Изменено 3 марта, 2019 пользователем siways
Мирный Атом Опубликовано 3 марта, 2019 Опубликовано 3 марта, 2019 @siways, применение PowerShell возможно?
andrew75 Опубликовано 3 марта, 2019 Опубликовано 3 марта, 2019 @siways, а минимальные усилия по поиску сами приложить не пробовали? IF NOT EXIST *KD*.txt GOTO 123 https://ab57.ru/cmdlist/if.html
siways Опубликовано 3 марта, 2019 Автор Опубликовано 3 марта, 2019 @siways, применение PowerShell возможно? Да возможно @siways, а минимальные усилия по поиску сами приложить не пробовали? IF NOT EXIST *KD*.txt GOTO 123 https://ab57.ru/cmdlist/if.html Спасибо за ссылку, попробую сделать так чтобы KD b OP вместе в одном действии проверялись если не одного не будет, то "exit"
siways Опубликовано 3 марта, 2019 Автор Опубликовано 3 марта, 2019 Кому интересно это выглядит вот так: xcopy "C:\Users\user\Downloads\1\*KD*.txt" "D:\Windows 7\KO" /d xcopy "C:\Users\user\Downloads\1\*OP*.txt" "D:\Windows 7\KO" /d IF EXIST *KD*.txt IF EXIST *OP*.txt ( "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx0 -r0 "C:\Temp\Babs%DATE:~0,2%.%DATE:~3,2%.%DATE:~6,4%_%Time:~0,2%-%Time:~3,2%.zip" "D:\Windows 7\KO" ) ELSE ( exit ) Правда нет распределения дальше по папкам, но самого главного я добился, сделал архивацию при наличии файлов в переменной папке. Если кто знает как сделать так чтоб происходила архивация только определенных файлов *KD*.txt и *OP*.txt буду благодарен, знаю про функцию исключения, но не смог найти способ по которому архивация происходит только для определенных типов файлов.
andrew75 Опубликовано 4 марта, 2019 Опубликовано 4 марта, 2019 как сделать так чтоб происходила архивация только определенных файлов *KD*.txt и *OP*.txt вы копируете только определенные файлы, и, следовательно, только их и архивируете.Чтобы разделить архивы, сделайте две операции последовательно. Грубо говоря: xcopy *KD*.txt ... If exist *KD*.txt (7zip ...) else goto end move *.zip куда_то_там del *KD*.txt xcopy *OP*.txt ... If exist *OP*.txt (7zip ...) move *.zip куда_то_там del *KD*.txt :end Тем более я не уверен, что конструкция с двойным IF будет работать.
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти