PDA

Показать полную графическую версию : [решено] Как удалить найденную папку у которой в названии имеется пробел.


ufooo
24-05-2015, 21:46
Как удалить найденную папку, (Diamond Starter)- у которой в названии имеется пробел.
Пример скрипта: удаления папки.
@Echo Off
Color 1a
SetLocal EnableExtensions

Set F=Daimond Starter
For %%D In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do (
For /F "Delims=" %%I In ('Dir %%D:\%F%.* /AD /B /S 2^>nul') Do (
If Exist "%%I" (
If /I "%%~nxI"=="%F%" Echo "%%I"
If /I "%%~nxI"=="%F%" del /S /Q "%%I\">nul
If /I "%%~nxI"=="%F%" RD /S /Q "%%I\">nul

)
)
)
ping -n 6 localhost>Nul
Exit /b

greg zakharov
24-05-2015, 22:26
@echo off
setlocal enabledelayedexpansion
set "dir=Diamond Starter"
for /l %%i in (65 1 90) do (
cmd /c exit /b %%i
set "drv=!=exitcodeascii!:\"
for /f "tokens=*" %%j in ('2^>nul dir /a:d /s /b "!drv!!dir!"') do (
rd /q /s "%%~$PATH:j"
)
)
endlocal
exit /b

Georgio
24-05-2015, 22:28
Даже условий никаких не нужно (если папка найдена, и если она не скрытая, не системная, не используется другой программой, то она "высветится" и будет удалена со всем содержимым, если же не найдена, то ничего не произойдёт):


@Echo Off
Color 1a
SetLocal EnableExtensions

Set "F=Daimond Starter"

For %%D In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do (
For /F "Delims=" %%I In ('Dir "%%D:\%F%*" /AD /B /S 2^>Nul^| findstr /EILC:"\%F%"') Do (
Echo "%%I"
RD /S /Q "%%I"
)
)

Endlocal
ping -n 6 localhost>Nul
Exit /b


.

greg zakharov
24-05-2015, 22:32
Georgio, прошу прощения за оффтоп, но интерес берет верх: не влом набирать A B C D E ...?

Iska
24-05-2015, 22:37
greg zakharov, F4, Ctrl-Ins, Esc, Ctrl-Tab, Shift-Ins. Не влом ;).

Georgio
24-05-2015, 22:38
greg zakharov, а Вы в курсе, что Вы используете мою разработку? Ссылки дать?

greg zakharov
24-05-2015, 22:44
...а Вы в курсе...Мне не интересны чужие наработки, я доверяю лишь своему опыту. И потом, если желаете заложиться на почку, дескать, используется Ваша разработка - жалуйтесь на копирайт в ООН.

ufooo
24-05-2015, 22:47
Set "F=Daimond Starter" »
Не удаляет.

greg zakharov
24-05-2015, 22:53
Кстати, ufooo, какая у Вас система? Win > 5.1? Если да, можно использовать where для поиска папки.

ufooo
24-05-2015, 22:54
Кстати, ufooo, какая у Вас система? »
Windows 7

Set "F=Daimond Starter" »
Сделал системе "LogOff", и скрипт заработал.Что это был за глюк?

Georgio
24-05-2015, 23:10
Что это был за глюк? »


Понятия не имею. Развожу руками (не нашёл такого смайлика).

ufooo
24-05-2015, 23:33
А после выполнения удаления папок можно вывести отчет в текст файле с сообщением что он удалил и где.
@Echo Off
Color 1a
SetLocal EnableExtensions

Set "F=Daimond Starter"

For %%D In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do (
For /F "Delims=" %%I In ('Dir "%%D:\%F%*" /AD /B /S 2^>Nul^| findstr /EILC:"\%F%"') Do (
Echo "%%I"
RD /S /Q "%%I"
)
)

Endlocal
ping -n 6 localhost>Nul
Exit /b

greg zakharov
24-05-2015, 23:54
ufooo, а echo на что?
@echo off
setlocal enabledelayedexpansion
set "dir=Diamond Starter"
for /l %%i in (65 1 90) do (
cmd /c exit /b %%i
set "drv=!=exitcodeascii!:\"
for /f "tokens=*" %%j in ('2^>nul dir /a:d /s /b "!drv!!dir!"') do (
rd /q /s "%%~$PATH:j"
echo "%%~$PATH:j" has been deleted.
)
)
endlocal
exit /b

Georgio
25-05-2015, 00:23
@Echo Off
Color 1a
SetLocal EnableExtensions

Set "F=Daimond Starter"

>"Log.txt" (
For %%D In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do @(
For /F "Delims=" %%I In ('Dir "%%D:\%F%*" /AD /B /S 2^>Nul^| findstr /EILC:"\%F%"') Do @(
>&2 Echo %%I
Echo _____%%I_____
Dir "%%I" /A /B /S
RD /S /Q "%%I"
Echo _____________
)
)
)

Endlocal
ping -n 6 localhost>Nul
Exit /b

ufooo
25-05-2015, 00:33
То что надо.
>&2 Echo %%I
Echo _____%%I_____
Dir "%%I" /A /B /S
RD /S /Q "%%I"
Echo _____________
Код greg zakharov удаляет папку только там где он сам находится.
@echo off
setlocal enabledelayedexpansion
set "dir=Diamond Starter"
for /l %%i in (65 1 90) do (
cmd /c exit /b %%i
set "drv=!=exitcodeascii!:\"
for /f "tokens=*" %%j in ('2^>nul dir /a:d /s /b "!drv!!dir!"') do (
rd /q /s "%%~$PATH:j"
)
)
endlocal
exit /b

greg zakharov
25-05-2015, 09:13
...удаляет папку только там где он сам находится.У Вас явно что-то не то с системой.

ufooo
27-05-2015, 10:12
У Вас явно что-то не то с системой. »
Проверю на других компах- может точно с системой что то нето.




© OSzone.net 2001-2012