Показать полную графическую версию : [решено] Удалить (перенести) все папки, кроме начинающихся с цифры (цифр)
Wrongbee
04-05-2018, 15:50
Приветствую, друзья!
Неделю бьюсь. Прошу помочь с скриптом.
Есть папка, в которой находятся папки с номерами заказов, например 54879. Папку захламляют чем попало. Работает скрипт (VBS), который каждую минуту удаляет все папки вне файлов.
Нужен скрипт, который будет проверять папку D:/ZAKAZ и при появлении в ней папки, начинающейся НЕ с цифры, переносить эту папку в D:/MUSOR. Более продвинутая хотелка, если можно. При появлении папки, начинающейся не с пяти цифр, переносить в мусор.
Спасибо за неоднократную помощь
Папку захламляют чем попало. »
Кто захламляет? Как именно захламляет? Какие оргмеры принимаются для противодействия этому?
удаляет все папки вне файлов. »
Это, простите, как? Файл не может являться контейнером.
Работает скрипт (VBS), »
Покажите его код. Опишите условия его применения, ибо одновременная работа двух скриптов одинаковой направленности над одним каталогом может приводить к непредсказуемым последствиям.
и при появлении в ней папки, начинающейся НЕ с цифры, переносить эту папку в D:/MUSOR. Более продвинутая хотелка, если можно. При появлении папки, начинающейся не с пяти цифр, »
Определитесь — то или то нужно. «Продвинутости» во втором случае по сравнению с первым нет ни малейшей.
Wrongbee
04-05-2018, 16:15
Исправляюсь. Есть папка d:\ZAKAZ. На каждый новый заказ заводится папка с именем типа "25647_Заказчик". Хотелось бы оставлять все папки, имя которых начинается с пяти цифр (дальше неважно). И переносить все остальные папки в D:\Musor
Пример. Папки должны остаться
"18345"
"27483_браво"
"98273 Альфа".
Папки (имена) должны быть перемещены в мусор
"Браво_23424"
"2734"
"Моя скачка" и тд
На данный момент в планировщике работает батник, который удаляет все файлы (не папки), который оказываются в папке d:\ZAKAZ. То есть при появлении любого файла (не папки) в папке d:\ZAKAZ , этот файл удаляется
-------------
@ECHO OFF
del /Q "d:\zakaz\*.*
--------------
На данный момент в планировщике работает батник, который удаляет все файлы (не папки), который оказываются в папке d:\ZAKAZ. То есть при появлении любого файла (не папки) в папке d:\ZAKAZ , этот файл удаляется »
Как именно он работает в Планировщике? Ибо в коде самого пакетного файла отсутствуют какие-либо средства для слежения за «появлением любого файла». И, как я понимаю, в Планировщике этого тоже нет. А что там есть, как именно организован запуск пакетного файла в задании?
Есть папка d:\ZAKAZ. На каждый новый заказ заводится папка с именем типа "25647_Заказчик". Хотелось бы оставлять все папки, имя которых начинается с пяти цифр (дальше неважно). »
Ясно.
И переносить все остальные папки в D:\Musor »
Зачем переносить? Почему не просто удалять? В принципе, можно и переносить, но зачем?
dir /ad /b | findstr /v /r "^[0-9][0-9][0-9][0-9][0-9]."
вернет имена директорий, которые не подходят под ваше правило. Их и удаляйте.
Wrongbee
04-05-2018, 16:50
Спасибо!!! Начну пробовать :)
Ставил удалялку файлов давно, но cmdow @ /HID работала кривовато (помигивал экран при запущенном графическом софте), и именно в планировщик был поставлен скрипт, который и запускает батник 1.cmd абсолютно невидимо. Не самое изящное решение, наверно.
---------
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "D:\Cron\1.cmd", 0
Set oShell = Nothing
--------------------
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.