Показать полную графическую версию : [решено] Удаление всех файлов из папки
cmd-шник на удаление всех файлов с опр. папки? »
что по этому вопросу?
что по этому вопросу? »
del /f /q %systemroot%\temp\*.*
Удаление ненужных файлов и папок после установки ОС (http://oszone.net/6159)
*.* »
не удаляет.
мб по-другому как-то? (опять-таки только файлы, которые находятся в этой папке, саму папку не обязательно)
не удаляет.
мб по-другому как-то? (опять-таки только файлы, которые находятся в этой папке, саму папку не обязательно) »
Все должно удаляться. Опубликуйте команду, которую вы использовали, а также приведите сообщения, которые выводятся в окне - ошибки и т.д. Можете убрать параметр /q, тогда будет виден запрос.
у меня тоже не удаляются:
X:\STUFF>del /s C:\Documents and Settings\Администратор\Application Data\Microso
ft\Internet Explorer\Quick Launch\*.*
Системе не удается найти указанный путь.
Petya V4sechkin
03-05-2009, 09:21
dronsky, если в пути есть пробелы, нужны кавычки.
Vadikan, Код:
del /f /q %systemroot%\temp\*.* »
Задача как раз удалить содержимое из папки "C:\WINDOWS\TEMP", что у меня соответствует "%systemroot%\temp".
Ситуация такая: SFX-архив распаковывается в эту папку и запускает CMD-файл. После завершения работы CMD-файла папку C:\WINDOWS\TEMP надо очистить (файлы и папка с подпапками). Файлы удаляются, а папка - нет!
Пробовал <RD /S /Q "%systemroot%\temp\"> - не работает. Мож подскажете в чем дело? Спасибо.
Всё, разобрался!
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)
Может быть, всё-таки не «*.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, Поясните.Мне нужно удалить содержимоепапок Моя музыка,Мои рисунки
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», извлекать и танцевать оттуда. Примеры извлечения значений из реестра и присвоения их переменным на форуме были не раз.
Похоже вопрос так и остался не решеным. Нужно удалить содержимое папки 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
Было же уже: rd + md теряют выставленные разрешения на папку. Правильный путь смотреть в: #3 (http://forum.oszone.net/post-1080597-3.html), #4 (http://forum.oszone.net/post-1278786-4.html).
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 мне нравится больше как более универсальный
…этот мой способ в частном случае можно успешно использовать. »
Для данного частного случая — согласен. За исключением того, что простое «del /q» удаляет не все файлы (по разным атрибутам) ;).
Способ «pushd»/«popd» хорош ещё тем, что нормально работает с UNC-путями без ручного монтирования или плясок с реестром.
P.S. А зачем резать «%Where:~0,2%»?! Можно сразу «cd /d "%Where%"»
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.