Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 48
Благодарности: 3

Профиль | Отправить PM | Цитировать


Всё равно не копирует. Удалять удаляет, с исключениями, как надо, но не копируует перед этим. В итоге папка Y:\Clean\%USERNAME% пуста.



PHP код: Выделить весь код

@echo on

MD Y
:Clean%USERNAME%
If 
Not Exist "Y:\Clean" (
Echo 
Otsutstvet Setevoi DiskY:Clean
Exit


setlocal

set wmic
=wmic logicaldisk where drivetype="3" get name

Set NoDelete
=C:cleanexclude.txt
@Echo %>%NoDelete%

@Echo 
OFFICE >>%NoDelete%
@Echo 
Windows >>%NoDelete%
@Echo 
Program Files >>%NoDelete%
@Echo 
Program Files (x86) >>%NoDelete%

for /
%%i in (' "%wmic%" ') do if exist %%(

for %%
j in (.aaa .bbb .ccc) do (
FOR /
"usebackq delims=" %%f IN (`xcopy /s /y /h /i "%%i\*%%j" "Y:\Clean\%USERNAME%" /L /EXCLUDE:%NoDelete%`) DO Del "%%f"
)



Пытался вставить отдельно строку c xcopy (Но не понятно почему не работает вышеуказанный код...)

PHP код: Выделить весь код

for /%%i in (' "%wmic%" ') do if exist %%(

for %%
j in (.aaa .bbb .ccc) do FOR /"usebackq delims=" %%f IN (`xcopy /s /y /h /i "%%i\*%%j" "Y:\Clean\%USERNAME%\%%i"`) do (

FOR /
"usebackq delims=" %%f IN (`xcopy /s /y /h /i "%%i\*%%j" "Y:\Clean\%USERNAME%" /L /EXCLUDE:%NoDelete%`) DO Del "%%f"
)
)
pause 


Но это ооочень уж длительный процесс.


Такая процедура значительно быстрее отрабатывала поиск и копирование файлов. (но по правде говоря я совсем не понимаю, почему она намного быстрее всё это делает.)

PHP код: Выделить весь код

for /%%a in (%SystemDrive%*) do (set "$a=%%a"
 
SetLocal EnableDelayedExpansion
if /i not "!$a:~3!"=="Program Files (x86)" if /i not "!$a:~3!"=="Windows"  (
  
pushd "!$a!\" && (for /f "delims=" %%A in ('"dir/b/s/a-*.aaa *.bbb *.ccc 2>Nul"') do (
  xcopy /s /y /h /i "
%%A" "Y:Clean%USERNAME%%%~pA">Nul && del /f /s /q "%%A"

)
  popd)) 

И я бы использовал этот код для копирования, но не получается указать в нём поиск на всех локальных дисках, определяемых выше, как в коде ниже. (при этом не затрагивая флэшки и сетевые диски)


PHP код: Выделить весь код

set wmic=wmic logicaldisk where drivetype="3" get name

for /%%i in (' "%wmic%" ') do if exist %%(
for /
%%a in (%%i) do (set "$a=%%a"
 
SetLocal EnableDelayedExpansion
if /i not "!$a:~3!"=="Program Files (x86)" if /i not "!$a:~3!"=="Windows"  (
  
pushd "!$a!\" && (for /f "delims=" %%A in ('"dir/b/s/a-*.aaa *.bbb *.ccc 2>Nul"') do (
  xcopy /s /y /h /i "
%%A" "Y:Clean%USERNAME%%%~pA">Nul && del /f /s /q "%%A"

)
  popd)) 


Я уже совсем запутался.

Последний раз редактировалось Xarien, 18-06-2013 в 12:57.


Отправлено: 12:31, 18-06-2013 | #10