|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение файлов по списку |
|
CMD/BAT - Перемещение файлов по списку
|
Пользователь Сообщения: 72 |
Есть список файлов filelist.txt (с абсолютными путями), надо переместить файлы которые в списке в другую папку с сохранением структуры папок.
Например: из папки scr переместить файлы в dst filelist.txt c:\src\1.jpg ---> d:\dst\1.jpg c:\src\sdf.jpg ---> d:\dst\sdf.jpg c:\src\YYY\sdsdf.txt ---> d:\dst\YYY\sdsdf.txt |
|
Отправлено: 10:06, 25-10-2011 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось megaloman, 25-10-2011 в 17:19. Отправлено: 13:20, 25-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Вот идея того, как избежать повторного запуска именно конкретного батника, при этом иметь возможность запускать любой другой батник с таким же контролем повторного запуска - на время работы создаём вспомогательный файл и после нормальной отработки его удаляем. При принудительном завершении батника этот файл придётся удалить вручную.
@Echo Off cls If Exist "%0.log" ( Echo ***************************************** Echo Предыдущий запуск батника- смотри файл: Echo %0.log Echo нормально не завершен Echo ***************************************** Pause GoTo :Eof ) Echo %Date% %Time% >"%0.log" FOR /F "usebackq delims=" %%f IN ("D:\Delete\filelist.txt") DO Call :MoveFile "%%~f" Del "%0.log" GoTo :Eof |
------- Отправлено: 11:25, 26-10-2011 | #3 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать megaloman, Твой вариант гораздо лучше, чем просто блокирование CMD.EXE
|
Отправлено: 10:14, 27-10-2011 | #4 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Ситуация такая: если после создания списка файлов в пупке s:\tor-s\OK появился новый файл, то нужно повторно перезапустить батник (или его часть, например с метки :Begine)
@Echo On cls If Not Exist t: GoTo :Eof If Exist "%0.log" ( Echo ***************************************** Echo Предыдущий запуск батника- смотри файл: Echo %0.log Echo нормально не завершен Echo ***************************************** GoTo :Eof ) Echo %Date% %Time% >"%0.log" chcp 1251 md T:\ss\1 rem :Begine rem копирование исход в приход с созданием списка скопированных файлов c:\nnbackup\nnbackup.exe copy -i "s:\tor-s\OK" -o "t:\SS\1" -s -v -list s:\tor-s\OK.txt -fp FOR /F "usebackq delims=" %%f IN ("s:\tor-s\OK.txt") DO Call :MoveFile "%%~f" :MoveFile Set Out="%~dp1" Set Out=%Out:"s:\tor-s\OK\="s:\films\% Set Out=%Out:\"="% Md %Out% >nul 1>nul 2>nul Move %1 %Out% Del "%0.log" rem Удаление пустых папок :again for /f "tokens=*" %%i in (' dir /b /s /ad "s:\tor-s\OK" ') do 2>nul rd /q "%%i" && goto:again GoTo :Eof megaloman предложил: Как вариант Но куда его ставить?? В конце батника, он не отрабатывается. |
|
Отправлено: 20:43, 04-12-2011 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Подскажите программу downloader для скачивания по списку (список - 10000 файлов) | Demdot | Хочу все знать | 2 | 11-06-2011 23:11 | |
Прочие БД - Извлечение файлов по списку | Aviator | Программирование и базы данных | 1 | 22-02-2011 02:44 | |
CMD/BAT - [решено] перемещение каталогов по списку | neprotiv | Скриптовые языки администрирования Windows | 4 | 02-03-2010 09:39 | |
[решено] Замена файлов по списку | Endy1 | Программирование в *nix | 9 | 15-02-2010 13:50 | |
Перемещение по списку в Excel | Evita | Хочу все знать | 3 | 16-03-2006 01:13 |
|