![]() |
Удаление папок средствами Windows
Помогите новичку плиз.
"Необходимо написать скрипт и запускать его при каждом выходе пользователя из виндоус. Скрипт должен очищать заданную директорию по определенной маске: директория - C:\Users\"ПОЛЬЗОВАТЕЛЬ"\AppData\Local\1C\1cv8 удаляем только папки с названиями типа - 73c58a87-39c7-4571-b760-5a70505b271f статично кол-во символов между дефисами, общее кол-во символов в названии и набор символов - любые цифры и буквы без спецсимволов и пробелов." Вобщем не могу понять как задачу на удаление папок с определённым количеством символов,а остальные файлу и папки,чтоб оставались целыми. |
dreamzed, ? в маске обозначает один любой символ:
Код:
dir C:\Users\ПОЛЬЗОВАТЕЛЬ\AppData\Local\1C\1cv8\????????-????-????-????-???????????? |
Тут бы хорошо смотрелось такое:
Скрытый текст
Код:
@echo off но, к сожалению, как не крути — шаблон получается на шесть символов длиннее, нежели допустимо для findstr.exe. И это под новыми ОС! Для XP и ниже в плане ограничений всё ещё хуже. Посему, либо с некоторым низким риском удаления лишнего: Скрытый текст
Код:
@echo off (для реального удаления убрать выделенное echo), либо WSH/PoSH, где нет таких ограничений. Цитата:
|
В CMD есть риск непредсказуемого поведения команды с маской.
Вот vbs-скрипт, где задача решена средствами WSH
Код:
Set WShell = CreateObject("WScript.Shell") |
Цитата:
|
Цитата:
в CMD маски ведут себя эталонно - их там придумали, если в VBS поведение отличается - это как раз вызывает недоумение. |
#4
у меня сейчас тестовая папка находится по такому пути- D:\1c\1c8 подскажите пожалуйста,что поменять в вашем коде.чтобы он заработал. Ещё раз прошу прощение за нубизм, первый раз в жизни со скриптами столкнулся) |
Цитата:
Цитата:
Вот CMD с регулярным выражением.
Код:
@Echo Off Цитата:
В vbs-скрипте WhereDir = "D:\1C\1cv8" |
Busla,
Цитата:
dir /B /A:D "????????-????-????-????-????????????" Выдаст (естественно, при наличии папок) 73c58a87-39c7-4571-b760-3a70505b271 73c58a87-39c7-4571-b760-5a70505b271f 73c58a87-39c7-4571-b760-5 Спрогнозировать иные выверты работы команд CMD с маской не берусь, сталкивался с ними не раз, для меня это непредсказуемо, хотя когда-то на форуме объяснение звучало А вот CMD с рег выражением отработал и пока обмануть его не получилось. Кстати, в моём vbs-скрипте с этой маской тоже кривая история, так что надо его переписывать, алгоритм только придумать. |
Cпасибо Вам Огромное!Да прибудет с Вами высокие зарплаты и крепкое здоровье!
|
Цитата:
Цитата:
Скрытый текст
Код:
Option Explicit Цитата:
Цитата:
|
Мой vbs-скрипт с регулярными выражениями и настройками на вид имени
Код:
Plan = Array(8, 4, 4, 4, 12) ' Число символов в каждой части имени "[0-9a-f]" |
Цитата:
Вариант заглавных букв (A-F) не учитывается? Я бы учёл на всякий случай. |
|
Время: 02:18. |
Время: 02:18.
© OSzone.net 2001-