Войти

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


Страниц : [1] 2 3

7human7
09-02-2009, 11:41
cmd-шник на удаление всех файлов с опр. папки? »
что по этому вопросу?

Vadikan
09-02-2009, 13:53
что по этому вопросу? »
del /f /q %systemroot%\temp\*.*
Удаление ненужных файлов и папок после установки ОС (http://oszone.net/6159)

7human7
10-02-2009, 13:40
*.* »
не удаляет.
мб по-другому как-то? (опять-таки только файлы, которые находятся в этой папке, саму папку не обязательно)

Vadikan
10-02-2009, 14:12
не удаляет.
мб по-другому как-то? (опять-таки только файлы, которые находятся в этой папке, саму папку не обязательно) »
Все должно удаляться. Опубликуйте команду, которую вы использовали, а также приведите сообщения, которые выводятся в окне - ошибки и т.д. Можете убрать параметр /q, тогда будет виден запрос.

dronsky
03-05-2009, 09:19
у меня тоже не удаляются:

X:\STUFF>del /s C:\Documents and Settings\Администратор\Application Data\Microso
ft\Internet Explorer\Quick Launch\*.*
Системе не удается найти указанный путь.

Petya V4sechkin
03-05-2009, 09:21
dronsky, если в пути есть пробелы, нужны кавычки.

Smarty
03-05-2009, 20:53
Vadikan, Код:
del /f /q %systemroot%\temp\*.* »

Задача как раз удалить содержимое из папки "C:\WINDOWS\TEMP", что у меня соответствует "%systemroot%\temp".
Ситуация такая: SFX-архив распаковывается в эту папку и запускает CMD-файл. После завершения работы CMD-файла папку C:\WINDOWS\TEMP надо очистить (файлы и папка с подпапками). Файлы удаляются, а папка - нет!
Пробовал <RD /S /Q "%systemroot%\temp\"> - не работает. Мож подскажете в чем дело? Спасибо.

Всё, разобрался!

dronsky
03-05-2009, 21:59
Petya V4sechkin,
Спасибо конечно, но это ничего не изменило:

X:\STUFF>del "C:\Documents and Settings\Администратор\Application Data\Microsoft
\Internet Explorer\Quick Launch\*.ink"
Не удается найти C:\Documents and Settings\Администратор\Application Data\Micros
oft\Internet Explorer\Quick Launch\*.ink


Притом, в той папке файлы *.ink имеются на 100%

Вот код батника, ну это для того, чтоб было понятно, что
русских букв в пути не используется

del "%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch\*.ink"


Ага, прошу прощения, мой косяк - забыл что у ярлыков расширение .lnk (не .ink)

Iska
03-05-2009, 22:56
Может быть, всё-таки не «*.ink», а «*.lnk»?!

korsar77
08-09-2009, 09:42
Petya V4sechkin, Не чистится содержимое папок .Подскажите где ошибка
cmdow @ /HID
del /f /q "%UsersProfile%\Мои Документы\Мои Рисунки\"
del /f /q "%AllUsersProfile%\Общие документы\Рисунки\"
EXIT

Petya V4sechkin
08-09-2009, 09:48
korsar77, потому что этих папок не существует.

korsar77
08-09-2009, 09:51
Petya V4sechkin, Поясните.Мне нужно удалить содержимоепапок Моя музыка,Мои рисунки

Iska
08-09-2009, 11:13
korsar77, у Вас ошибки. Petya V4sechkin ведь вполне ясно об этом сказал.

Цитируя Ваш код:
echo [%UsersProfile%]
вместо реального «%UserProfile%». Копировали текст с «%AllUsersProfile%»?!

Далее, не всё то, что видится в Проводнике, отражает реальную ситуацию на диске. В частности, папка общих документов по умолчанию отображается на каталог «C:\Documents and Settings\All Users\Документы», а не на «…\Общие документы», как у Вас.

По хорошему же, надо смотреть в значения «HKEY_LOCAL_MACHINE…/HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders», извлекать и танцевать оттуда. Примеры извлечения значений из реестра и присвоения их переменным на форуме были не раз.

sov44
05-09-2010, 13:28
Похоже вопрос так и остался не решеным. Нужно удалить содержимое папки Temp, которое включает как папки с подпапками, так и отдельные файлы. Саму папку Temp удалять не надо. Как решить задачку?

megaloman
05-09-2010, 16:00
Вот несколько парадоксальное решение:Set Where=C:\Tmp

rd "%Where%" /s /q
md "%Where%" У меня Win XP. Как это работает: удаляются все файлы в папке и подпапках, если они ничем не заняты. Удаляются все подпапки, если они пустые (т е если в них не осталось занятых чем-нибудь файлов), удаляется и указанная папка. Если удалится исходная указанная папка, мы её пересоздадим. Если при пересоздании папки выдастся ошибка (если папка не удалилась), на неё можно не обращать внимания, ничем она не мешает.

Как вариант, можно, конечно, удалить все файлы в указанной папке, можно организовать цикл по именам подпапок в корне указанной папки и последовательно их удалить. Но это длинее. Set Where=C:\Tmp
del "%Where%\*.*" /Q
FOR /F "usebackq delims=" %%i IN (`dir "%Where%\" /B /AD`) DO rd "%Where%\%%i" /s /q

Iska
05-09-2010, 17:22
Было же уже: rd + md теряют выставленные разрешения на папку. Правильный путь смотреть в: #3 (http://forum.oszone.net/post-1080597-3.html), #4 (http://forum.oszone.net/post-1278786-4.html).

sov44
05-09-2010, 20:49
Iska, батник действительно работает. Не могли бы вы разъяснить принцип его работы и чем он хуже варианта megaloman, который тоже рабочий?

PUSHD %WinDir%\TEMP
2>Nul RD /S/Q "%WinDir%\TEMP"
POPD

megaloman
06-09-2010, 10:22
Iska, rd + md теряют выставленные разрешения на папкуsov44,Нужно удалить содержимое папки Temp-в общем случае это так, однако, не думаю, что на папку TEMP кем-то выставляются какие-то особые для текущего пользователя разрешения, поэтому этот мой способ в частном случае можно успешно использовать. Тем более, что при работе системы чаще всего в папке TEMP имеются занятые файлы (например, антивирусной программой) и удалить её не удастся.
Мой второй вариант применим вообще без ограничений.

megaloman
06-09-2010, 13:03
sov44, pushd "%Where%" приведёт к тому, что указанная папка будет занята системой, и командой RD удалить её не удастся. Как аналог этого действия, Set Where=C:\Tmp

%Where:~0,2%
cd "%Where%"

rd "%Where%" /s /q В этом примере последовательность команд
C:
cd "C:\tmp"
приведёт к тому, что директория C:\Tmp будет занята и командой RD удалена не будет, хотя её содержимое будет вычищено.
Вариант с Pushd мне нравится больше как более универсальный

Iska
06-09-2010, 17:31
…этот мой способ в частном случае можно успешно использовать. »
Для данного частного случая — согласен. За исключением того, что простое «del /q» удаляет не все файлы (по разным атрибутам) ;).

Способ «pushd»/«popd» хорош ещё тем, что нормально работает с UNC-путями без ручного монтирования или плясок с реестром.

P.S. А зачем резать «%Where:~0,2%»?! Можно сразу «cd /d "%Where%"»




© OSzone.net 2001-2012