![]() |
[решено] Удаление по маске, кроме папки исключения.
Всем привет, есть такой вот батник:
@echo off For /R C:\ %%i in (*.mp3,*.jpg,*.jpeg,*.avi,*.mov) Do ( Del /q "%%i") Подскажите как можно сделать так что бы этот батник работал но не удалял ничего в папке C:\Shared Если через бат такое нельзя, то если не затруднит выложите на другом языке, подходящем для logon скрипта win 2k3. |
Цитата:
Код:
for /d %%a in ("C:\*") do if /i not "%%a"=="C:\Shared" (del/s/q %%~sa\*.mp3 %%~sa\*.jpg %%~sa\*.jpeg %%~sa\*.avi %%~sa\*.mov |
Работает, только в корне диска С:/ не удаляет ничего.
|
Цитата:
Код:
for /d %%a in (C:\*) do if /i not "%%a"=="C:\Shared" del/s/q %%~sa\*.mp3 %%~sa\*.jpg %%~sa\*.jpeg %%~sa\*.avi %%~sa\*.mov |
Большое спасибо.
|
Подниму тему, дабы не плодить)) А как вместо удаления сделать перемещение файлов в сетевую папку на основе этого батника? Так что бы он сканил по расширению и перемещал эти файлы на сетевую папку.
|
serjei, на основе этого батника не получится - в отличии от DEL, команда MOVE НЕ может:
- самостоятельно обрабатывать подкаталоги; - принимать в командной строке несколько параметров - шаблонов имен файлов Поэтому, требуется максимально конкретная постановка новой задачи: ЧТО и КУДА перемещать... Кстати, при перемещении из разных подкаталогов имена файлов могут совпасть, как быть в этом случае?.. На форуме неоднократно поднимались похожие темы, для примера: CMD/BAT - [решено] Батник сбора файлов из поддиректорий в общую папку CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске |
Собственно нужно все .mp3 .jpg и проч удалять на компах юзверей. Но собственно не все пользователи перенесли рабочие фото на сервер, так вот чтоб не нароком ничего лишнего не удалить, первое время я хотел скидывать все доки на сервер, и если там что важное, то вернуть хозяину с "бонусом" за внимательность. Этот батник который все удаляет, сканит ведь винты по маске и удаляет, а мне нужно что бы он так же сканил винты но не удалял а переносил все на сервер.
http://forum.oszone.net/showthread.php?p=1179744 вот этот подходит вроде, но я со своими познаниями врядли интерпретирую)) Может кто поможет в этом деле? |
serjei, вариант с сохранением исходной структуры каталогов,
для каждого ПК на сервере создается своя папка с таким же именем: Код:
@echo off |
Спасибо))
|
Вдруг вот при выполнении появилось это
@echo off for /d %%a in (C:\*) do if /i not "%%a"=="C:\Windows" "C:\Program Files" (del/s/q %%~sa\*.mp3 %%~sa\*.jpg %%~sa\*.jpeg %%~sa\*.avi %%~sa\*.mov) неожиданное появление: %%a. del /q C:\*.mp3 C:\*.jpg C:\*.jpeg C:\*.avi C:\*.mov Хотя при тестах все удалялось, что на тестовой, что на рабочей машине. |
Цитата:
способ получения полного лога: http://forum.oszone.net/post-1675364-18.html |
@echo off
for /d %%a in (C:\*) do if /i not "%%a"=="C:\Windows" "C:\Program Files" (del/s/q %%~sa\*.mp3 %%~sa\*.jpg %%~sa\*.jpeg %%~sa\*.avi %%~sa\*.mov) del /q C:\*.mp3 C:\*.jpg C:\*.jpeg C:\*.avi C:\*.mov for /d %%a in ("D:\*") do if /i not "%%a"=="D:\Shared" (del/s/q "%%~sa\*.mp3" "%%~sa\*.jpg" "%%~sa\*.jpeg" "%%~sa\*.avi" "%%~sa\*.mov") del /q D:\*.mp3 D:\*.jpg D:\*.jpeg D:\*.avi D:\*.mov for /d %%a in ("E:\*") do if /i not "%%a"=="E:\Shared" (del/s/q "%%~sa\*.mp3" "%%~sa\*.jpg" "%%~sa\*.jpeg" "%%~sa\*.avi" "%%~sa\*.mov") del /q E:\*.mp3 E:\*.jpg E:\*.jpeg E:\*.avi E:\*.mov Это батник который запускаю. Лог: ""C:\Program Files"" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. ""C:\Program Files"" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. ""C:\Program Files"" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. ""C:\Program Files"" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти C:\*.mp3 Не удается найти D:\FM42XX~1.24\*.mp3 Не удается найти D:\Manuals\*.mp3 Не удается найти D:\Share\*.mp3 Не удается найти D:\Virtual\*.mp3 Удален файл - D:\6239~1\Акт титул.jpg Удален файл - D:\6239~1\стр.1.jpg Удален файл - D:\6239~1\стр.2.jpg Не удается найти D:\*.mp3 я в общем совсем запутался)) |
serjei, может так?
Код:
@echo off |
спс, отпишусь по результатам.
Цитата:
Я в програмированнии полный ноль)) если можно то опишите подробней плз данное действие. |
|
Ах вон про что)) я то думал про другое.
|
А возможно ли исключить USB устройства из сканирования? даже если флешка имеет букву диска D или E.
|
пожалуйста, напишите мне батник который бы
1. удалял все папки (вместе с их содержимым) внутри C:\windows\ у которых имя начинается с $NtUninstallKB и чтобы не было никаких запросов. т.е. мне надо что-то типа Код:
rd c:\windows\$ntuninstallkb* /s /q 2. удалял бы все папки внутри c:\WINDOWS\$hf_mig$\ но не её саму - на случай, если винда не догадается в след. раз её сначала создать, а также ради того, чтобы узнать как это наконец делается, ведь Код:
rd c:\windows\$hf_mig$\* /s /q |
1.
Код:
For /F "delims=" %%D In ('Dir "%WinDir%\$ntuninstallkb*" /B /A:D') Do (RD /S /Q "%WinDir%\%%D") Код:
For /F "delims=" %%D In ('Dir "%WinDir%\$hf_mig$\" /B /A:D') Do (RD /S /Q "%WinDir%\$hf_mig$\%%D") |
Anonymоus,
Непредвиденное появление: %%D. Foreigner, Anonymоus, спасибо! |
iDrug,
Если прямо из cmd, то используй %D вместо %%D |
Anonymоus,
а можно ещё 2 скрипта, пожалуйста? Цитата:
|
iDrug, для удаления всех файлов, включая файлы в поддиректориях, но не трогая сами директории:
Код:
For /R "D:\Test" %%A In (*) Do (Del "%%A") Код:
For /F "delims=" %%A In ('Dir "D:\Test\*" /B') Do (RD /S /Q "D:\Test\%%A" 2>nul||Del /Q "D:\Test\%%A") |
Цитата:
Anonymous, спасибо. |
Код:
For /F "delims=" %%A In ('Dir "D:\Test\*" /B /A-D') Do (Del "D:\Test\%%A") |
не хочу создавать новую тему подскажите, реально ли сделать поиск файлов .*exe на диске по именам папок в корне диска и удалить его
к примеру\ на диске С: папка opera нужно найти файл Opera.exe и удалить его |
|
Время: 14:08. |
Время: 14:08.
© OSzone.net 2001-