Войти

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


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

Iska
23-02-2015, 13:10
Удалить из папки все файлы и все папки, НО папку оставить. »
Попробуйте так (http://forum.oszone.net/post-1080597.html#post1080597).

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

samotin_bratok@vk
23-02-2015, 19:08
Iska, конечно же Temp :) C\Windows\Temp.

Foreigner
23-02-2015, 19:28
samotin_bratok@vk, Ну так запускай батник из админской cmd.

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

Iska
24-02-2015, 00:27
Может, чего не понимаю. »
Папка для временных файлов. Там банально могут быть файлы, используемые системой.

Iska, создал два батника, один ClearFolder.bat, в котором код, второй обычный, в котором команда на очистку. »
Ничего не понял.

samotin_bratok@vk
24-02-2015, 19:18
Iska, Папка для временных файлов. Там банально могут быть файлы, используемые системой
Да, уточню, хотел сделать так, чтобы используемые файлы просто пропускались..

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

Iska
26-02-2015, 17:33
samotin_bratok@vk, пишите подробно, в деталях, что и как именно Вы делали, что получилось, и что — нет.

samotin_bratok@vk
26-02-2015, 19:37
Iska, простите..я разобрался. Это всё моя невнимательность.
Но один вопрос остался. Как сделать доступ к системным папкам, и очищать эту Temp, игнорируя занятые файлы?

Iska
27-02-2015, 16:31
игнорируя занятые файлы? »
А сейчас как происходит?

samotin_bratok@vk
27-02-2015, 21:10
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
Iska, пропускает все. »
Не верю.

И ещё мелкий косячок - работает только первая строчка. »
samotin_bratok@vk, покажите Ваш код целиком.

mwz
28-02-2015, 01:37
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
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
samotin_bratok@vk, имея в виду, что в моём варианте удаляются только файлы: папки остаются нетронутыми.
Для удаления папок действительно нужно использовать команду RD (она же – RMDIR).

samotin_bratok@vk
01-03-2015, 20:24
mwz, это я изучал. Но RD не подходит, ибо не удаляет папки, ИЗ папки. Надеюсь, изъяснился понятно.

samotin_bratok@vk
09-03-2015, 21:54
Спасибо всем за "помощь" - плюнули и написали на lua. Всё работает.

Iska
09-03-2015, 22:08
Спасибо всем за "помощь" »
«Звонил король. Спрашивал — куда принести полцарства.» :lol:

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




© OSzone.net 2001-2012