Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удалить (перенести) все папки, кроме начинающихся с цифры (цифр) (http://forum.oszone.net/showthread.php?t=334667)

Wrongbee 04-05-2018 15:50 2812085

Удалить (перенести) все папки, кроме начинающихся с цифры (цифр)
 
Приветствую, друзья!
Неделю бьюсь. Прошу помочь с скриптом.
Есть папка, в которой находятся папки с номерами заказов, например 54879. Папку захламляют чем попало. Работает скрипт (VBS), который каждую минуту удаляет все папки вне файлов.
Нужен скрипт, который будет проверять папку D:/ZAKAZ и при появлении в ней папки, начинающейся НЕ с цифры, переносить эту папку в D:/MUSOR. Более продвинутая хотелка, если можно. При появлении папки, начинающейся не с пяти цифр, переносить в мусор.
Спасибо за неоднократную помощь

Iska 04-05-2018 16:03 2812086

Цитата:

Цитата Wrongbee
Папку захламляют чем попало. »

Кто захламляет? Как именно захламляет? Какие оргмеры принимаются для противодействия этому?

Цитата:

Цитата Wrongbee
удаляет все папки вне файлов. »

Это, простите, как? Файл не может являться контейнером.

Цитата:

Цитата Wrongbee
Работает скрипт (VBS), »

Покажите его код. Опишите условия его применения, ибо одновременная работа двух скриптов одинаковой направленности над одним каталогом может приводить к непредсказуемым последствиям.

Цитата:

Цитата Wrongbee
и при появлении в ней папки, начинающейся НЕ с цифры, переносить эту папку в D:/MUSOR. Более продвинутая хотелка, если можно. При появлении папки, начинающейся не с пяти цифр, »

Определитесь — то или то нужно. «Продвинутости» во втором случае по сравнению с первым нет ни малейшей.

Wrongbee 04-05-2018 16:15 2812088

Исправляюсь. Есть папка d:\ZAKAZ. На каждый новый заказ заводится папка с именем типа "25647_Заказчик". Хотелось бы оставлять все папки, имя которых начинается с пяти цифр (дальше неважно). И переносить все остальные папки в D:\Musor

Пример. Папки должны остаться
"18345"
"27483_браво"
"98273 Альфа".

Папки (имена) должны быть перемещены в мусор
"Браво_23424"
"2734"
"Моя скачка" и тд

На данный момент в планировщике работает батник, который удаляет все файлы (не папки), который оказываются в папке d:\ZAKAZ. То есть при появлении любого файла (не папки) в папке d:\ZAKAZ , этот файл удаляется
-------------
@ECHO OFF
del /Q "d:\zakaz\*.*
--------------

Iska 04-05-2018 16:39 2812091

Цитата:

Цитата Wrongbee
На данный момент в планировщике работает батник, который удаляет все файлы (не папки), который оказываются в папке d:\ZAKAZ. То есть при появлении любого файла (не папки) в папке d:\ZAKAZ , этот файл удаляется »

Как именно он работает в Планировщике? Ибо в коде самого пакетного файла отсутствуют какие-либо средства для слежения за «появлением любого файла». И, как я понимаю, в Планировщике этого тоже нет. А что там есть, как именно организован запуск пакетного файла в задании?

Цитата:

Цитата Wrongbee
Есть папка d:\ZAKAZ. На каждый новый заказ заводится папка с именем типа "25647_Заказчик". Хотелось бы оставлять все папки, имя которых начинается с пяти цифр (дальше неважно). »

Ясно.

Цитата:

Цитата Wrongbee
И переносить все остальные папки в D:\Musor »

Зачем переносить? Почему не просто удалять? В принципе, можно и переносить, но зачем?

Опиум 04-05-2018 16:41 2812092

Код:

dir /ad /b | findstr /v /r "^[0-9][0-9][0-9][0-9][0-9]."
вернет имена директорий, которые не подходят под ваше правило. Их и удаляйте.

Wrongbee 04-05-2018 16:50 2812095

Спасибо!!! Начну пробовать :)

Ставил удалялку файлов давно, но cmdow @ /HID работала кривовато (помигивал экран при запущенном графическом софте), и именно в планировщик был поставлен скрипт, который и запускает батник 1.cmd абсолютно невидимо. Не самое изящное решение, наверно.
---------

Dim oShell

Set oShell = WScript.CreateObject ("WSCript.shell")

oShell.run "D:\Cron\1.cmd", 0

Set oShell = Nothing
--------------------


Время: 01:08.

Время: 01:08.
© OSzone.net 2001-