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

samotin_bratok@vk 23-02-2015 01:13 2474721

Удаление файлов\папок.
 
Всем добрый день. Вопрос, конечно, глупый, но всё же.
Мне нужно следующее:
Удалить из папки все файлы и все папки, НО папку оставить.
С первым разобрался, вот со вторым не очень..
И ещё. При удалении из папки Windows пишет "Отказано в доступе". Тоже, желательно, вылечить. Спасибо заранее.

Iska 23-02-2015 13:10 2474843

Цитата:

Цитата samotin_bratok@vk
Удалить из папки все файлы и все папки, НО папку оставить. »

Попробуйте так.

Цитата:

Цитата samotin_bratok@vk
При удалении из папки Windows пишет "Отказано в доступе". Тоже, желательно, вылечить. »

Про какую папку речь?

samotin_bratok@vk 23-02-2015 19:08 2474958

Iska, конечно же Temp :) C\Windows\Temp.

Foreigner 23-02-2015 19:28 2474963

samotin_bratok@vk, Ну так запускай батник из админской cmd.

samotin_bratok@vk 23-02-2015 23:55 2475060

Foreigner, дело в том, что я и ПКМ - От Администратора пробовал. А мне нужно не прям в консоли, а чисто батник. Может, чего не понимаю.
Iska, создал два батника, один ClearFolder.bat, в котором код, второй обычный, в котором команда на очистку.
Конечно же:
"ClearFolder.cmd" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Iska 24-02-2015 00:27 2475069

Цитата:

Цитата samotin_bratok@vk
Может, чего не понимаю. »

Папка для временных файлов. Там банально могут быть файлы, используемые системой.

Цитата:

Цитата samotin_bratok@vk
Iska, создал два батника, один ClearFolder.bat, в котором код, второй обычный, в котором команда на очистку. »

Ничего не понял.

samotin_bratok@vk 24-02-2015 19:18 2475403

Iska,
Цитата:

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

Цитата:

Ничего не понял.
Грубо говоря - я не понял, как мне реализовать Ваш метод. Я не силён в CMD\BAT, основные команды только знаю..если не сложно, расскажите, как верно нужно всё создать. Спасибо.

Iska 26-02-2015 17:33 2476255

samotin_bratok@vk, пишите подробно, в деталях, что и как именно Вы делали, что получилось, и что — нет.

samotin_bratok@vk 26-02-2015 19:37 2476307

Iska, простите..я разобрался. Это всё моя невнимательность.
Но один вопрос остался. Как сделать доступ к системным папкам, и очищать эту Temp, игнорируя занятые файлы?

Iska 27-02-2015 16:31 2476720

Цитата:

Цитата samotin_bratok@vk
игнорируя занятые файлы? »

А сейчас как происходит?

samotin_bratok@vk 27-02-2015 21:10 2476840

Iska, пропускает все.
И ещё мелкий косячок - работает только первая строчка.
Пример:
Цитата:

ClearFolder.cmd "G:\Program Files\temp"
ClearFolder.cmd "G:\Program Files\editors\temp"
ClearFolder.cmd "G:\Program Files\el_editor\temp"
Только первая строчка очищает, остальные игнорируются.

Iska 28-02-2015 00:16 2476924

Цитата:

Цитата samotin_bratok@vk
Iska, пропускает все. »

Не верю.

Цитата:

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

samotin_bratok@vk, покажите Ваш код целиком.

mwz 28-02-2015 01:37 2476935

Цитата:

Цитата samotin_bratok@vk
Код:

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

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

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

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 01-03-2015 13:09 2477385

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 01-03-2015 16:11 2477487

samotin_bratok@vk, имея в виду, что в моём варианте удаляются только файлы: папки остаются нетронутыми.
Для удаления папок действительно нужно использовать команду RD (она же – RMDIR).

samotin_bratok@vk 01-03-2015 20:24 2477584

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

samotin_bratok@vk 09-03-2015 21:54 2480739

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

Iska 09-03-2015 22:08 2480746

Цитата:

Цитата samotin_bratok@vk
Спасибо всем за "помощь" »

«Звонил король. Спрашивал — куда принести полцарства.» :lol:

vsokol 11-03-2015 16:52 2481403

что бы не создавать новую тему напишу здесь
создал батник для удаления программ
пример
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"//я так понял удаляет папку с прогой


Время: 23:02.

Время: 23:02.
© OSzone.net 2001-