Xarien
06-06-2013, 15:39
Есть Батник по поиску и перемещению определённых типов файлов (по расширению) с системного диска на сетевой диск.
Есть список папок исключения.
@echo on
del %SystemDrive%\*.tmp /f /s /q
ping -n 5 127.0.0.1 > NUL
ping -n 5 127.0.0.1 > NUL
ping -n 5 127.0.0.1 > NUL
MD Y:\Clean\%USERNAME%
If Not Exist "Y:\Clean" (
Exit
)
cacls "Y:\Clean\%USERNAME%" /E /G %USERNAME%@domainname.local:F
cacls "Y:\Clean\%USERNAME%" /E /R domainname\DomainUsers
for /d %%a in (%SystemDrive%\*) do (set "$a=%%a"
SetLocal EnableDelayedExpansion
if /i not "!$a:~3!"=="Windows" if /i not "!$a:~3!"=="Program Files" if /i not "!$a:~3!"=="Miranda" (
pushd "!$a!\" && (for /f "delims=" %%A in ('"dir/b/s/a-d *.mp3 *.rar *.zip *bak 2>Nul"') do (
xcopy /s /y /h /i "%%A" "Y:\Clean\%USERNAME%%%~pA">Nul && del /f /s /q "%%A"
)
popd))
copy /y %SystemDrive%\*.mp3* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.rar* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.zip* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.bak* Y:\Clean\%USERNAME%
del /q %SystemDrive%\*.mp3 %SystemDrive%\*.rar %SystemDrive%\*.zip %SystemDrive%\*.bak
EndLocal)
%SystemDrive%
cd "%temp%"
del /f /s /q *.*
Проблема в следующем. Исключения по папкам работают только в том случае, если они находятся в корне диска.
Необходимо добавить пару файлов (или вложенных папок с файлами ) в исключения, и если что редактировать bat-ник и дописывать исключения (лучше если это будет делаться прямо в bat файле, а не в отдельном txt с исключениями)
Примеры исключений которые должны работать:
C:\Documents and Settings\All Users\Application Data\Microsoft\OFFICE\DATA\OPA12.bak
C:\Documents and Settings\USERNAME\Local Settings\Application Data\Programs\Opera\skin\standard_skin.zip
Подскажите пожалуйста, как это сделать, что бы не сильно переписывать существующий Bat файл.
Заранее благодарен:)
Есть список папок исключения.
@echo on
del %SystemDrive%\*.tmp /f /s /q
ping -n 5 127.0.0.1 > NUL
ping -n 5 127.0.0.1 > NUL
ping -n 5 127.0.0.1 > NUL
MD Y:\Clean\%USERNAME%
If Not Exist "Y:\Clean" (
Exit
)
cacls "Y:\Clean\%USERNAME%" /E /G %USERNAME%@domainname.local:F
cacls "Y:\Clean\%USERNAME%" /E /R domainname\DomainUsers
for /d %%a in (%SystemDrive%\*) do (set "$a=%%a"
SetLocal EnableDelayedExpansion
if /i not "!$a:~3!"=="Windows" if /i not "!$a:~3!"=="Program Files" if /i not "!$a:~3!"=="Miranda" (
pushd "!$a!\" && (for /f "delims=" %%A in ('"dir/b/s/a-d *.mp3 *.rar *.zip *bak 2>Nul"') do (
xcopy /s /y /h /i "%%A" "Y:\Clean\%USERNAME%%%~pA">Nul && del /f /s /q "%%A"
)
popd))
copy /y %SystemDrive%\*.mp3* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.rar* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.zip* Y:\Clean\%USERNAME%
copy /y %SystemDrive%\*.bak* Y:\Clean\%USERNAME%
del /q %SystemDrive%\*.mp3 %SystemDrive%\*.rar %SystemDrive%\*.zip %SystemDrive%\*.bak
EndLocal)
%SystemDrive%
cd "%temp%"
del /f /s /q *.*
Проблема в следующем. Исключения по папкам работают только в том случае, если они находятся в корне диска.
Необходимо добавить пару файлов (или вложенных папок с файлами ) в исключения, и если что редактировать bat-ник и дописывать исключения (лучше если это будет делаться прямо в bat файле, а не в отдельном txt с исключениями)
Примеры исключений которые должны работать:
C:\Documents and Settings\All Users\Application Data\Microsoft\OFFICE\DATA\OPA12.bak
C:\Documents and Settings\USERNAME\Local Settings\Application Data\Programs\Opera\skin\standard_skin.zip
Подскажите пожалуйста, как это сделать, что бы не сильно переписывать существующий Bat файл.
Заранее благодарен:)