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

ufooo 24-05-2015 21:46 2510963

Как удалить найденную папку у которой в названии имеется пробел.
 
Как удалить найденную папку, (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 2510974

Код:

@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 2510975

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


Код:

@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 2510976

Georgio, прошу прощения за оффтоп, но интерес берет верх: не влом набирать A B C D E ...?

Iska 24-05-2015 22:37 2510978

greg zakharov, F4, Ctrl-Ins, Esc, Ctrl-Tab, Shift-Ins. Не влом ;).

Georgio 24-05-2015 22:38 2510979

greg zakharov, а Вы в курсе, что Вы используете мою разработку? Ссылки дать?

greg zakharov 24-05-2015 22:44 2510980

Цитата:

Цитата Georgio
...а Вы в курсе...

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

ufooo 24-05-2015 22:47 2510981

Цитата:

Цитата Georgio
Set "F=Daimond Starter" »

Не удаляет.

greg zakharov 24-05-2015 22:53 2510985

Кстати, ufooo, какая у Вас система? Win > 5.1? Если да, можно использовать where для поиска папки.

ufooo 24-05-2015 22:54 2510986

Цитата:

Цитата greg zakharov
Кстати, ufooo, какая у Вас система? »

Windows 7

Цитата:

Цитата Georgio
Set "F=Daimond Starter" »

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

Georgio 24-05-2015 23:10 2510990

Цитата:

Цитата ufooo
Что это был за глюк? »


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

ufooo 24-05-2015 23:33 2510994

А после выполнения удаления папок можно вывести отчет в текст файле с сообщением что он удалил и где.
Код:

@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 2510998

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 2511005

Код:

@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 2511008

То что надо.
Код:

  >&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 2511041

Цитата:

Цитата ufooo
...удаляет папку только там где он сам находится.

У Вас явно что-то не то с системой.

ufooo 27-05-2015 10:12 2511884

Цитата:

Цитата greg zakharov
У Вас явно что-то не то с системой. »

Проверю на других компах- может точно с системой что то нето.


Время: 05:32.

Время: 05:32.
© OSzone.net 2001-