|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование и удаление файлов по маске |
|
|
CMD/BAT - [решено] Копирование и удаление файлов по маске
|
Пользователь Сообщения: 122 |
Профиль | Отправить PM | Цитировать Здравствуйте.
Помогите пожалуйста решить проблему. Есть папка с подпапками (около 30 штук). В каждой подпапке находятся текстовые файлы (всегда 900 txt). Файлы имеют такой вид result0000000.txt result0000001.txt result0000002.txt ... и так до result0000898.txt result0000899.txt setlocal enableextensions set "MYPATH=E:\TEMPO_UPD\32-bit\En\UnPack\KBxxxxxx\" set SOURSE=*.exe for /f "tokens=*" %%i in ('dir /b/s/a-d "%MYPATH%%SOURSE%" ^| findstr /G:KB.log') do del /q /f "%%i" endlocal EXIT Конечно можно прописать список из 600 файлов, но неужели нет более элегантного решения? А в другой подпапке нужно перенести из одной папки в другую файлы с result0000599.txt по result0000899.txt. Тут я уже не смогла найти нужный скрипт... Хоть я и выбрала категорию cmd/bat, способ решения мне не важен С уважением, Юлия |
|
Отправлено: 16:38, 17-10-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ul9:
где вместо E:\Песочница\0184 укажите путь к Вашей папке («Есть папка с …»). Цитата ul9:
|
||
Отправлено: 18:13, 17-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Я через AutoScriptWriter записала себе порядок действий по генерации файлов.
Приведу пример. Есть основная папка work, а в ней подпапки test1, test2, test3, test4 и т.д.. В каждой из этих подпапок по 900 txt файлов. В папке test1 нужно оставить первые 300 файлов (result0000000.txt - result0000299.txt), все остальные удалить. Из папки test2 перенести (result0000300.txt - result0000599.txt) в папку test3, а (result0000599.txt - result0000899.txt) в test4. Надеюсь не косноязычно получилось Плохо, что нельзя добавить в свой скрипт, т.к. процедура довольно регулярная. |
Последний раз редактировалось ul9, 17-10-2012 в 19:25. Отправлено: 18:37, 17-10-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ul9:
2. Как поступать с файлами из test5, test6 … testNN? 3. Сами папки вида testXX не имеют вложенных? То есть, не надо искать файлы result0000XX.txt ещё и во вложенных в test1, test2 …? Цитата ul9:
2. Если — «Существуют», то что делать, если в test3 и/или в test4 окажутся одноимённые файлы? Цитата ul9:
|
|||
Отправлено: 20:02, 17-10-2012 | #4 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Как я себе представляю логику скрипта. Вначале я распределяю файлы по папкам, после переименовываю их в result0000000.txt - result0000299.txt, а все остальные удаляю из всех папок.
Цитата Iska:
Цитата Iska:
Цитата Iska:
Цитата Iska:
Цитата Iska:
|
||||||
Отправлено: 20:19, 17-10-2012 | #5 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:20, 18-10-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ul9:
Цитата ul9:
Но запускать его пока не рекомендую: удалите указанные файлы во всех вложенных папках. |
||
Отправлено: 19:35, 18-10-2012 | #7 |
Пользователь Сообщения: 122
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
@Echo Off cls FOR /F "usebackq delims=" %%f IN ("D:\Delete\filelist.txt") DO Call :MoveFile "%%~f" GoTo :Eof :MoveFile Set Out="%~dp1" Set Out=%Out:"c:\src\="d:\dsc\% Set Out=%Out:\"="% Md %Out% >nul 1>nul 2>nul Move %1 %Out% Потом так переименую для каждой папки @echo off setlocal enableextensions enabledelayedexpansion set /a lCount = 0 for /f "delims=*" %%i in ('dir /b /s "D:\work\nasledstvo\*.txt"') do ( set /a lCount += 1 ren "%%i" "file!lCount!%%~xi" ) endlocal exit /b 0 |
||
Отправлено: 19:52, 18-10-2012 | #8 |
Ветеран Сообщения: 894
|
Профиль | Отправить PM | Цитировать D:\work\nasledstvo\*.txt
ren "%%i" "file!lCount!%%~xi" выполнять не рекомендую, замучаетесь потом маску выставлять. file1.txt file10.txt file100.txt Сделайте себе несколько батников 1. Удаление 600 файлов. 2. Перенос из папки в папку 300 файлов. (замените в скрипте из второго поста @del на move и соответствующие цифры. удаление 600 файлов из папки test1 del600.cmd d:\test1 удаление 600 файлов из папки test22 del600.cmd d:\test22 тело %1, %2 .... %9 означают параметры переданные команднику. перемещение из d:\test1 в d:\test2 move599.cmd d:\test1 d:\test2 со вторым списком аналогично. крайне рекомендую все папки по которым будет проводиться очистка заархивировать и спрятать на другой диск. при проверке батников можно перед командами del, Move поставить echo. Будет длинный список команд . Настоятельно рекомендую прочитать справку по командам for, if, set Обязательно читать справку по del, Move и любым командам которые удаляют/копируют/перемещают папки или файлы. cmd /k help for help if help set help В путях пускай не будет пробелов, %, !, ~ и других спец символов, аккуратней с русскими буквами |
Отправлено: 23:15, 18-10-2012 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ul9:
Максимум того, что могу предложить — это дать примерное представление. |
|
Отправлено: 05:54, 19-10-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Нужен VBS скрипт для поиска файлов по маске и копирование его в определенное место | exekill | Скриптовые языки администрирования Windows | 0 | 17-03-2012 10:46 | |
CMD/BAT - [решено] Копирование файлов по маске за вчерашний день | dvassilyev | Скриптовые языки администрирования Windows | 8 | 19-10-2011 19:36 | |
CMD/BAT - копирование файлов удовлетворяющих маске из одного каталога в два других | Gablik | Скриптовые языки администрирования Windows | 5 | 15-09-2011 15:13 | |
Delphi - Перемещение и удаление файлов по маске. | Putin-mode | Программирование и базы данных | 1 | 21-06-2010 12:16 | |
Можно ли запретить копирование файлов на сервер по маске | admyes | Microsoft Windows NT/2000/2003 | 1 | 08-12-2005 06:44 |
|