Компьютерный форум 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=281310)

X.509 23-04-2014 14:41 2341982

Удаление по маске
 
у меня здача стоит таким образом: при запуске bat файла удалялось всё по маске (например *.txt) но не затрагивались бы системные папки такие как Windows, Program Files ну и т.д.
Я попробовал взять код:
Код:

@echo off
Setlocal EnableDelayedExpansion EnableExtensions
 
::Попка для удаления содержащих в ней каталогов
Set Src=L:\bash\test
::Файл-список ислючений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt
 
Call :Init
Call :AllFolders "%Src%"
pause
Goto :eof
 
::Переписываем содержимое файла в массив (ускорение операций)
:Init
For /f "UseBackQ Delims=" %%A in ("%ExcList%") do (
  Set /A n+=1
  Set Ex!n!=%%A
)
Exit /b
 
::Обходим папки рекурсивно
:AllFolders
Call :Check "%~1"
if %errorlevel%==1 Exit /B
For /f "delims=" %%A in ('dir /b /a:d "%~1"') do (
  Call :AllFolders "%~1\%%A"
)
::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" Echo rd /s /q "%~1"
Exit /b
 
::Проверить есть ли переданный как аргумент каталог в массиве
:Check
For /L %%A in (1,1,%n%) do (
  if /i "%~1"=="!Ex%%A!" Exit /B 1
)
Exit /b 0

попробовал изменить 5 строчку. вместо:
Код:

Set Src=L:\bash\test
просто поставил по маске, то есть:
Код:

Set Src=C:\*.txt
в Exclude.txt просто добавил пару папок которые трогать не нужно (Wondows, Programm Files).
В общем не работает мой вариант. Куда копать?

Опиум 23-04-2014 17:36 2342079

предлагаю использовать для данной задачи robocopy
например навскидку так
Код:

robocopy /e /mov /r:0  c:\    d:\помойка  *.txt /xd c:\windows /xd "Program files"
а потом почистить d:\помойка

Гуллипут 23-04-2014 23:47 2342231

Цитата:

Цитата X.509
Set Src=C:\*.txt »

Вообще-то, судя по тексту, программа рассчитана на
1) удаление каталогов, а не файлов (команда rd)
2) указание входного каталога без всяких подстановочных символов типа *.

Не проверяю придирчиво правильность исходного файла, но, если он работает. то изменить его надо так:
Set Src=C:
set mask=*.txt
.
.
.
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask%

И даже это не совсем то, что надо, потому что Echo в этой строке явно рассчитано не на реальное удаление, а на отладочную проверку данного алгоритма. Я этот приём часто использую. После того, как убедишься, что выдаются на экран нужные команды удаления, надо будет убрать Echo.

X.509 24-04-2014 09:27 2342312

Цитата:

Цитата Гуллипут
Не проверяю придирчиво правильность исходного файла, но, если он работает. то изменить его надо так:
Set Src=C:
set mask=*.txt
.
.
.
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask% »

Код:

Не удается найти файл .
Не удается найти указанную метку пакетного файла - Check
Для продолжения нажмите любую клавишу . . .


Гуллипут 24-04-2014 22:55 2342690

Получившийся текст - в студию ! А то беспредметный разговор получается.

Опиум 25-04-2014 09:13 2342780

я не понимаю, зачем вообще городить скрипт, если уже есть родная утилита, которая делает то что надо.

Гуллипут 26-04-2014 11:29 2343252

Цитата:

Цитата Опиум
же есть родная утилита »

Что за утилита ? Для кого она "родная" ? Если robocopy, то у меня, например, её нет.

Опиум 26-04-2014 12:47 2343276

Гуллипут, http://ru.wikipedia.org/wiki/Robocopy

Гуллипут 27-04-2014 10:25 2343685

Цитата:

Цитата Опиум
http://ru.wikipedia.org/wiki/Robocopy »

Это я читал. Но у меня XP, и в ближайшее время не планирую подниматься выше. Ну, не нравятся мне 7 и Vista. Хотя бы тем, что там нет полноэкранного режима для CMD и Far. Привычки у меня такие - неуютно в оконном режиме с Far'ом работать.
Правда, у автора вопроса ситуация может быть другая, так что интересно было бы знать его мнение о robocopy.

Iska 27-04-2014 15:06 2343760

Цитата:

Цитата Гуллипут
Но у меня XP, »

RoboCopy есть в комплектах Resource Kit'ов.

X.509 28-04-2014 00:43 2343935

Цитата:

Цитата Гуллипут
Получившийся текст - в студию ! А то беспредметный разговор получается. »

@echo off
Setlocal EnableDelayedExpansion EnableExtensions

Set Src=C:
set mask=*.txt

Call :Init
Call :AllFolders "%Src%"
pause
Goto :eof

::Переписываем содержимое файла в массив (ускорение операций)
:Init
For /f "UseBackQ Delims=" %%A in ("%ExcList%") do (
Set /A n+=1
Set Ex!n!=%%A
)
Exit /b

::Обходим папки рекурсивно
:AllFolders
Call :Check "%~1"
if %errorlevel%==1 Exit /B
For /f "delims=" %%A in ('dir /b /a:d "%~1"') do (
Call :AllFolders "%~1\%%A"
)
::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask%
Exit /b

::Проверить есть ли переданный как аргумент каталог в массиве
:Check
For /L %%A in (1,1,%n%) do (
if /i "%~1"=="!Ex%%A!" Exit /B 1
)
Exit /b 0

Гуллипут 28-04-2014 22:13 2344335

X.509, а куда пропало присвоение переменной ExcList ? Понятно, что файл в цикле for /F не найден.
Там ведь изначально стоял код:
Код:

::Файл-список исключений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt

А вот почему ругань на метку check - не знаю, у меня этот же код на неё не ругается.

Я добавил текст, который у вас пропал, вот что получилось:
Код:

@echo off
Setlocal EnableDelayedExpansion EnableExtensions

Set Src=C:
set mask=*.txt
::Файл-список исключений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt

Call :Init
Call :AllFolders "%Src%"
pause
Goto :eof

::Переписываем содержимое файла в массив (ускорение операций)
:Init
For /f "UseBackQ Delims=" %%A in ("%ExcList%") do (
Set /A n+=1
Set Ex!n!=%%A
)
Exit /b

::Обходим папки рекурсивно
:AllFolders
Call :Check "%~1"
if %errorlevel%==1 Exit /B
For /f "delims=" %%A in ('dir /b /a:d "%~1"') do (
Call :AllFolders "%~1\%%A"
)
::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask%
Exit /b

::Проверить есть ли переданный как аргумент каталог в массиве
:Check
For /L %%A in (1,1,%n%) do (
if /i "%~1"=="!Ex%%A!" Exit /B 1
)
Exit /b 0

И у меня это работает.

X.509 29-04-2014 17:38 2344705

Гуллипут, нет, не работает к сожалению. прошёлся по всем txt файлам включая те папки которые были указанны в файле Exclude.txt и всё, те что я насоздавал, как были так и остались.
Последние строки:
Код:

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.activities_31bf3856ad364e35_6.1.7600.16385_none_323c4905d95242ca"') do (Call
 :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364
e35_6.1.7600.16385_none_323c4905d95242ca\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e35
_6.1.7600.16385_none_323c4905d95242ca" NEQ "C:" Echo del /q "C:\Windows\winsxs\x
86_wwf-system.workflow.activities_31bf3856ad364e35_6.1.7600.16385_none_323c4905d
95242ca"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e35_6.
1.7600.16385_none_323c4905d95242ca"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf
3856ad364e35_6.1.7601.17514_none_346d5ccdd640c664" )

C:\>Call :Check "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad
364e35_6.1.7601.17514_none_346d5ccdd640c664"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_wwf-system.workflow.ac
tivities_31bf3856ad364e35_6.1.7601.17514_none_346d5ccdd640c664" == "!Ex%A!" Exit
 /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e3
5_6.1.7601.17514_none_346d5ccdd640c664" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e3
5_6.1.7601.17514_none_346d5ccdd640c664" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.activities_31bf3856ad364e35_6.1.7601.17514_none_346d5ccdd640c664"') do (Call
 :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364
e35_6.1.7601.17514_none_346d5ccdd640c664\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e35
_6.1.7601.17514_none_346d5ccdd640c664" NEQ "C:" Echo del /q "C:\Windows\winsxs\x
86_wwf-system.workflow.activities_31bf3856ad364e35_6.1.7601.17514_none_346d5ccdd
640c664"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.activities_31bf3856ad364e35_6.
1.7601.17514_none_346d5ccdd640c664"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_
31bf3856ad364e35_6.1.7600.16385_none_8bba6f9c6f693e3b" )

C:\>Call :Check "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf38
56ad364e35_6.1.7600.16385_none_8bba6f9c6f693e3b"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_wwf-system.workflow.co
mponentmodel_31bf3856ad364e35_6.1.7600.16385_none_8bba6f9c6f693e3b" == "!Ex%A!"
Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad3
64e35_6.1.7600.16385_none_8bba6f9c6f693e3b" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad3
64e35_6.1.7600.16385_none_8bba6f9c6f693e3b" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.componentmodel_31bf3856ad364e35_6.1.7600.16385_none_8bba6f9c6f693e3b"') do (
Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3
856ad364e35_6.1.7600.16385_none_8bba6f9c6f693e3b\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad36
4e35_6.1.7600.16385_none_8bba6f9c6f693e3b" NEQ "C:" Echo del /q "C:\Windows\wins
xs\x86_wwf-system.workflow.componentmodel_31bf3856ad364e35_6.1.7600.16385_none_8
bba6f9c6f693e3b"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad364e3
5_6.1.7600.16385_none_8bba6f9c6f693e3b"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_
31bf3856ad364e35_6.1.7601.17514_none_8deb83646c57c1d5" )

C:\>Call :Check "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf38
56ad364e35_6.1.7601.17514_none_8deb83646c57c1d5"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_wwf-system.workflow.co
mponentmodel_31bf3856ad364e35_6.1.7601.17514_none_8deb83646c57c1d5" == "!Ex%A!"
Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad3
64e35_6.1.7601.17514_none_8deb83646c57c1d5" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad3
64e35_6.1.7601.17514_none_8deb83646c57c1d5" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.componentmodel_31bf3856ad364e35_6.1.7601.17514_none_8deb83646c57c1d5"') do (
Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3
856ad364e35_6.1.7601.17514_none_8deb83646c57c1d5\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad36
4e35_6.1.7601.17514_none_8deb83646c57c1d5" NEQ "C:" Echo del /q "C:\Windows\wins
xs\x86_wwf-system.workflow.componentmodel_31bf3856ad364e35_6.1.7601.17514_none_8
deb83646c57c1d5"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.componentmodel_31bf3856ad364e3
5_6.1.7601.17514_none_8deb83646c57c1d5"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf385
6ad364e35_6.1.7600.16385_none_64f133bd015a8f4f" )

C:\>Call :Check "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364
e35_6.1.7600.16385_none_64f133bd015a8f4f"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_wwf-system.workflow.ru
ntime_31bf3856ad364e35_6.1.7600.16385_none_64f133bd015a8f4f" == "!Ex%A!" Exit /B
 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6
.1.7600.16385_none_64f133bd015a8f4f" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6
.1.7600.16385_none_64f133bd015a8f4f" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.runtime_31bf3856ad364e35_6.1.7600.16385_none_64f133bd015a8f4f"') do (Call :A
llFolders "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.
1.7600.16385_none_64f133bd015a8f4f\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.
1.7600.16385_none_64f133bd015a8f4f" NEQ "C:" Echo del /q "C:\Windows\winsxs\x86_
wwf-system.workflow.runtime_31bf3856ad364e35_6.1.7600.16385_none_64f133bd015a8f4
f"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.1.7
600.16385_none_64f133bd015a8f4f"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf385
6ad364e35_6.1.7601.17514_none_67224784fe4912e9" )

C:\>Call :Check "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364
e35_6.1.7601.17514_none_67224784fe4912e9"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_wwf-system.workflow.ru
ntime_31bf3856ad364e35_6.1.7601.17514_none_67224784fe4912e9" == "!Ex%A!" Exit /B
 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6
.1.7601.17514_none_67224784fe4912e9" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6
.1.7601.17514_none_67224784fe4912e9" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_wwf-system.workf
low.runtime_31bf3856ad364e35_6.1.7601.17514_none_67224784fe4912e9"') do (Call :A
llFolders "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.
1.7601.17514_none_67224784fe4912e9\%A" )

C:\>if /I "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.
1.7601.17514_none_67224784fe4912e9" NEQ "C:" Echo del /q "C:\Windows\winsxs\x86_
wwf-system.workflow.runtime_31bf3856ad364e35_6.1.7601.17514_none_67224784fe4912e
9"\*.txt
del /q "C:\Windows\winsxs\x86_wwf-system.workflow.runtime_31bf3856ad364e35_6.1.7
601.17514_none_67224784fe4912e9"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.760
0.16385_none_23239678b7db5032" )

C:\>Call :Check "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.1638
5_none_23239678b7db5032"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad3
64e35_6.1.7600.16385_none_23239678b7db5032" == "!Ex%A!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.16385_non
e_23239678b7db5032" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.16385_non
e_23239678b7db5032" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_xcbdav.inf_31bf3
856ad364e35_6.1.7600.16385_none_23239678b7db5032"') do (Call :AllFolders "C:\Win
dows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.16385_none_23239678b7db5032
\%A" )

C:\>if /I "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.16385_none
_23239678b7db5032" NEQ "C:" Echo del /q "C:\Windows\winsxs\x86_xcbdav.inf_31bf38
56ad364e35_6.1.7600.16385_none_23239678b7db5032"\*.txt
del /q "C:\Windows\winsxs\x86_xcbdav.inf_31bf3856ad364e35_6.1.7600.16385_none_23
239678b7db5032"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e3
5_6.1.7600.16385_ru-ru_d818115be115363a" )

C:\>Call :Check "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.
7600.16385_ru-ru_d818115be115363a"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_xnacc.inf.resources_31
bf3856ad364e35_6.1.7600.16385_ru-ru_d818115be115363a" == "!Ex%A!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.7600.
16385_ru-ru_d818115be115363a" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.7600.
16385_ru-ru_d818115be115363a" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_xnacc.inf.resour
ces_31bf3856ad364e35_6.1.7600.16385_ru-ru_d818115be115363a"') do (Call :AllFolde
rs "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.7600.16385_ru
-ru_d818115be115363a\%A" )

C:\>if /I "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.7600.1
6385_ru-ru_d818115be115363a" NEQ "C:" Echo del /q "C:\Windows\winsxs\x86_xnacc.i
nf.resources_31bf3856ad364e35_6.1.7600.16385_ru-ru_d818115be115363a"\*.txt
del /q "C:\Windows\winsxs\x86_xnacc.inf.resources_31bf3856ad364e35_6.1.7600.1638
5_ru-ru_d818115be115363a"\*.txt

C:\>Exit /b

C:\>(Call :AllFolders "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600
.16385_none_b381dfe1d4da7da9" )

C:\>Call :Check "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385
_none_b381dfe1d4da7da9"

C:\>For /L %A in (1 1 2) do (if /I "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad36
4e35_6.1.7600.16385_none_b381dfe1d4da7da9" == "!Ex%A!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385_none
_b381dfe1d4da7da9" == "!Ex1!" Exit /B 1 )

C:\>(if /I "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385_none
_b381dfe1d4da7da9" == "!Ex2!" Exit /B 1 )

C:\>Exit /b 0

C:\>if 0 == 1 Exit /B

C:\>For /F "delims=" %A in ('dir /b /a:d "C:\Windows\winsxs\x86_xnacc.inf_31bf38
56ad364e35_6.1.7600.16385_none_b381dfe1d4da7da9"') do (Call :AllFolders "C:\Wind
ows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385_none_b381dfe1d4da7da9\%
A" )

C:\>if /I "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385_none_
b381dfe1d4da7da9" NEQ "C:" Echo del /q "C:\Windows\winsxs\x86_xnacc.inf_31bf3856
ad364e35_6.1.7600.16385_none_b381dfe1d4da7da9"\*.txt
del /q "C:\Windows\winsxs\x86_xnacc.inf_31bf3856ad364e35_6.1.7600.16385_none_b38
1dfe1d4da7da9"\*.txt

C:\>Exit /b

C:\>if /I "C:\Windows\winsxs" NEQ "C:" Echo del /q "C:\Windows\winsxs"\*.txt
del /q "C:\Windows\winsxs"\*.txt

C:\>Exit /b

C:\>if /I "C:\Windows" NEQ "C:" Echo del /q "C:\Windows"\*.txt
del /q "C:\Windows"\*.txt

C:\>Exit /b

C:\>if /I "C:" NEQ "C:" Echo del /q "C:"\*.txt

C:\>Exit /b

C:\>pause
Для продолжения нажмите любую клавишу . . .


Гуллипут 06-05-2014 00:24 2347564

X.509, я же говорил, что в команде удаления:
Код:

::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" Echo del /q "%~1"\%mask%

команда echo стоит для того, чтобы контролировать правильность работы без реального удаления. Чтобы файлы реально удалялись, надо вместо этого написать
Код:

::Проверка не удаляем ли рабочий каталог
if /i "%~1" neq "%Src%" del /q "%~1"\%mask%



Время: 00:12.

Время: 00:12.
© OSzone.net 2001-