|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование из каталога в каталог по условию |
|
CMD/BAT - [решено] Копирование из каталога в каталог по условию
|
Пользователь Сообщения: 105 |
Профиль | Отправить PM | Цитировать Здравствуйте. Помогите пожалуйста.
chcp 65001 rem объявляю переменные set DirNaznachenie="Z:\kuda_kopiruestya" set DirNaznachenieFile="Z:\kuda_kopiruestya\DirNaznachenieFile.txt" set FindstrResultatFile="Z:\kuda_kopiruestya\FindstrResultatFile.txt" set DirNaznachenieMmYyyy="Z:\kuda_kopiruestya\%mmyy%" set mm=%date:~3,2% set yy=%date:~8,2% set yyyy=%date:~6,4% set mmyy=%mm%.%yy% set mmPlus="%mm%*" set TekGod="Z:\otkuda_kopiruestya\%yyyy%" set TekGodMesyac="Z:\otkuda_kopiruestya\%yyyy%\%mm%" set TekGodMesyacPlus="Z:\otkuda_kopiruestya\%yyyy%\%mmPlus%" rem проверка существования директории-источника, то есть создал ли пользователь дирекорию, которая будет наполняться целевыми файлами if exist %TekGodMesyacPlus% goto :ProverkaDirNaznach if not exist %TekGodMesyacPlus% goto :end :ProverkaDirNaznach rem получаем список имен каталогов в директории назначения и сохраняем в файл, чтобы проверить, не создан ли уже каталог с наименовнаием %mmyy% dir /b /d %DirNaznachenie% > %DirNaznachenieFile% rem проверяем есть ли в директории каталог, в имени которого текущий месяц и год (по условию), то есть, например каталог с наименованием 05.21 findstr /c:%mmyy% %DirNaznachenieFile% > %FindstrResultatFile% rem если, ниже, в команде for не будет usebackq и выражение будет в '' кавычках, то вывод будет Z:\PTO, а не ожидаемый, поэтому кавычки убираем, usebackq добавляем rem если есть, то выход и удаление текстовых файлов, копирование файлов в созданный каталог, если нет, то создается директория (а потом - также, копируются файлы *.xls, удаляются созданные *.txt FOR /F "usebackq tokens=1 delims= " %i in (%FindstrResultatFile%) do if %i equ "" goto :procedura else goto :end :procedura mkdir %DirNaznachenieMmYyyy% del %DirNaznachenieFile%, %FindstrResultatFile% goto :kopirovanie exit :kopirovanie xcopy /d %TekGodMesyacPlus%\408*.xls %DirNaznachenieMmYyyy% exit :end Застопорился тут: FOR /F "usebackq tokens=1 delims= " %i in (%FindstrResultatFile%) do if %i equ "" goto :procedura else goto :end По какой-то не понятной мне причине не переходит к :procedura В данном случае в файле FindstrResultatFile.txt - ничего нет, он пустой. Сравниваю тоже с пустым значением, но почему-то не переходит дальше. Пробовал FOR /F "usebackq tokens=* delims= " FOR /F "usebackq tokens=*" FOR /F "usebackq" Все равно не переходит... Помогите пожалуйста разобраться и сделать, чтобы был переход к процедуре |
|
Отправлено: 14:38, 11-05-2021 |
Ветеран Сообщения: 2727
|
Профиль | Отправить PM | Цитировать Цитата Elven:
epoddubniy, Вообще-то, если хотите (ИМХО, похвально!), организовывать код в виде выделенных процедур, то GoTo не годится, надо использовать Call. У Вас, например, есть процедура: Если делаете GoTo :procedura - выполнение командного файла завершится. В отличии от Call :procedura После этого выполнение командного файла продолжится дальше |
|
------- Последний раз редактировалось megaloman, 14-05-2021 в 11:55. Отправлено: 11:29, 14-05-2021 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 12:59, 14-05-2021 | #12 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать что вы спорите, если условие задачи вообще никуда:
копировать по условию, а условие - есть папка или нет (та, куда копируем) и если нет создаем. Я понимаю, если папки сами создаются, я и задавал выше ТС подобные вопросы поэтому. В данном случае условие это: или появление нового(ых) файла(ов) или момент запуска кода, последнее я и брал за условие в моем коде на PS. |
Отправлено: 15:14, 14-05-2021 | #13 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Перемещение файлов из каталога в каталог | servad | Скриптовые языки администрирования Windows | 9 | 30-01-2020 03:50 | |
CMD/BAT - [решено] Копирование строк в отдельный файл по условию | Seryoga204 | Скриптовые языки администрирования Windows | 26 | 24-08-2016 23:33 | |
CMD/BAT - Скопировать файл из текущего каталога в каталог уровнем выше | adrin | Скриптовые языки администрирования Windows | 2 | 22-12-2015 17:52 | |
CMD/BAT - [решено] Копирование файла по условию его содержимого | XSubZero | Скриптовые языки администрирования Windows | 3 | 16-05-2012 17:13 | |
CMD/BAT - [решено] Копирование и запуск по условию | AlexVong | Скриптовые языки администрирования Windows | 2 | 25-10-2010 14:03 |
|