CMD/BAT - [решено] Удаление файлов\папок.

Аватара пользователя
samotin_bratok@vk

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение samotin_bratok@vk »

Iska, пропускает все.

И ещё мелкий косячок - работает только первая строчка.

Пример:


Цитата:



ClearFolder.cmd "G:\Program Files\temp"

ClearFolder.cmd "G:\Program Files\editors\temp"

ClearFolder.cmd "G:\Program Files\el_editor\temp"



Только первая строчка очищает, остальные игнорируются.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение Iska »

Цитата samotin_bratok@vk:



Iska, пропускает все.
CMD/BAT - [решено] Удаление файлов\папок.




Не верю.




Цитата samotin_bratok@vk:



И ещё мелкий косячок - работает только первая строчка.
CMD/BAT - [решено] Удаление файлов\папок.




samotin_bratok@vk, покажите Ваш код целиком.
Аватара пользователя
mwz

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение mwz »

Цитата samotin_bratok@vk:





Код:

Код: Выделить всё

ClearFolder.cmd "G:\Program Files\temp"
ClearFolder.cmd "G:\Program Files\editors\temp"
ClearFolder.cmd "G:\Program Files\el_editor\temp"

Только первая строчка очищает, остальные игнорируются.
CMD/BAT - [решено] Удаление файлов\папок.




Ели записать вторую строчку как



Код:

Код: Выделить всё

ClearFolder.cmd "G:\Program Files\editors\temp"
ClearFolder.cmd "G:\Program Files\editors"

(т.е. сначала очистить папку второго уровня, а затем – первого, а не сразу первого) – работает?



PS



Вообще-то чистит на всю глубину без переспросов, оставляя занятые файлы нетронутыми, команда Del с соответствующими ключами:



Код:

Код: Выделить всё

del /F /S /Q /A "G:\Program Files\editors\temp"

которая может быть оформлена в виде батника ClearFolder.cmd с содержанием:



Код:

Код: Выделить всё

@echo off
if NOT "%1"=="" del /F /S /Q /A %1

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

В начале второй строки проверяется, указан ли каталог, дерево которого надо очистить – и если нет, то батник просто завершает работу.



Ключи команды del можно посмотреть запуском команды

Код:

Код: Выделить всё

cmd /k del /?

, ключ /A без параметров позволяет удалять файлы с любыми атрибутами H и S.
Аватара пользователя
samotin_bratok@vk

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение samotin_bratok@vk »

Iska, ClearFolder.cmd:

Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
if exist "%~1" (
    echo Clearing folders in [%~1].
    pushd "%~1" && (rmdir /s /q "%~1" & popd) 2>nul
) else (
    echo Not found [%~1]
)
endlocal
exit /b 0

Батник:



Код:

Код: Выделить всё

ClearFolder.cmd "G:\Program Files\SDK\temp"
ClearFolder.cmd "G:\Program Files\SDK_new\editors\temp"
ClearFolder.cmd "G:\Program Files\editors\temp"
pause

mwz, попробую и Ваш вариант.
Аватара пользователя
mwz

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение mwz »

samotin_bratok@vk, имея в виду, что в моём варианте удаляются только файлы: папки остаются нетронутыми.

Для удаления папок действительно нужно использовать команду RD (она же – RMDIR).
Аватара пользователя
samotin_bratok@vk

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение samotin_bratok@vk »

mwz, это я изучал. Но RD не подходит, ибо не удаляет папки, ИЗ папки. Надеюсь, изъяснился понятно.
Аватара пользователя
samotin_bratok@vk

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение samotin_bratok@vk »

Спасибо всем за "помощь" - плюнули и написали на lua. Всё работает.
Аватара пользователя
samotin_bratok@vk

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение samotin_bratok@vk »

Цитата samotin_bratok@vk:



Спасибо всем за "помощь"
CMD/BAT - [решено] Удаление файлов\папок.




«Звонил король. Спрашивал — куда принести полцарства.» Изображение
Аватара пользователя
vsokol

Re: CMD/BAT - [решено] Удаление файлов\папок.

Сообщение vsokol »

что бы не создавать новую тему напишу здесь

создал батник для удаления программ

пример

taskkill /t /f /im:NavitelNavigatorUpdater.exe//ну с этой строкой понятно,убивает процесс

start "" /wait "C:\Program Files (x86)\CNT\Navitel Navigator Update Center\Uninstall.exe" /s//запускает Uninstall.exe-можно ли сделать что бы удаление проходило в невидимом режиме?и после этого выходило сообщение например -успешно удалено и т.д.

rd /s /q "C:\Program Files (x86)\CNT"//я так понял удаляет папку с прогой
Ответить

Вернуться в «Скриптовые языки администрирования Windows»