Удаление папок и файлов с выбором
Удаление файлов и папок
В общем такая проблема. есть батник @echo off set «d=F:\Clean» set «d1=IT» set «d2=All».
Удаление файлов и папок
В общем проблема такая: у меня есть файловый менеджер, отображение элементов идет через treeview.
Удаление папок и файлов
Доброго времени суток! Проблема заключается в следующем, на сервере при перезагрузке нужно.
Сравнение и удаление файлов и папок
всю голову поломал с этой задачей нужен bat или cmd файл который закидывается в папку PE3EPB_1 и.
XxX_K_A_M_O_XxX, Советую познакомиться с Акронисом:)
set pause=5
timeout %pause% /nobreak
set a=»D:\windows»
set b=»D:\Program Files»
set c=»D:\Program Files (x86)»
set d=»D:\EFI»
if not «%a%»==»» (
start «1 Windows del» cmd /q /k takeown /f %a% /r
start «2 Windows del» cmd /q /k icacls %a% /reset /T
start «3 Windows del» cmd /q /k RD /S /Q %a%
)
if not «%b%»==»» (
start «1 Program Files del» cmd /q /k takeown /f %b% /r
start «2 Program Files del» cmd /q /k icacls %b% /reset /T
start «3 Program Files del» cmd /q /k RD /S /Q %b%
)
if not «%c%»==»» (
start «1 Program Files (x86) del» cmd /q /k takeown /f %c% /r
start «2 Program Files (x86) del» cmd /q /k icacls %c% /reset /T
start «3 Program Files (x86) del» cmd /q /k RD /S /Q %c%
)
if not «%d%»==»» (
start «1 EFI del» cmd /q /k takeown /f %d% /r
start «2 EFI del» cmd /q /k icacls %d% /reset /T
start «3 EFI del» cmd /q /k RD /S /Q %d%
)
Поиск и удаление файлов/папок
Здравствуйте. У меня такой вопрос! Как сделать bat файл, один из которых будет искать и удалять.
Запрет на удаление файлов/папок
Здравствуйте. Такая проблема: на компьютере есть два пользователя «User» и «Admin». Задача состоит.
Удаление файлов и папок в корзину
Доброго времени суток! Подскажите как переместить файлы и папки из папки Х в корзину посредством.
Удаление защищенных папок и файлов
Добрый день! Подскажите со скриптом, не могу понять как можно сделать так, чтобы удалялись.
Del (erase)
Удаление заданных файлов.
Синтаксис
Параметры
[диск:][путь] имя_файла Задание расположения и имени файла для удаления. Параметр имя_файла является обязательным. Допускается использование нескольких имен файлов. Имена файлов следует разделять пробелом, запятой или точкой с запятой. /p Задание удаления с подтверждением для каждого файла. /f Задание удаления файлов с атрибутом «Только чтение». /s Удаление заданных файлов в каталоге и всех его подкаталогах. Выводит имена удаляемых файлов. /q Задание автоматического режима. Не выводится подтверждение на удаление. /a Удаление файлов с заданными атрибутами. атрибуты Задание следующих атрибутов файла.
Атрибут | Описание |
---|---|
r | Только чтение |
a | Архивный |
s | Системный |
h | Скрытый |
— | Префикс «нет» |
/? Отображение справки в командной строке.
Примечания
Если задан параметр /p, команда del выводит на экран имя каждого удаляемого файла и следующее сообщение:
имя_файла, Удалить [Y(да)/N(нет)]?
Для подтверждения удаления следует нажать клавишу Y, для отмены удаления и перехода к следующему файлу следует нажать N (если задана группа файлов) или CRTL+C для остановки работы команды del.
Если расширения командного процессора отключены, параметр командной строки /s выводит все ненайденные, а не удаленные файлы (т. е. имеет противоположный смысл). Дополнительные сведения об отключении расширений командного процессора смотрите в разделе cmd.
Все файлы в каталоге могут быть удалены с помощью команды del с параметрами [диск:]путь. Например, следующая команда позволяет удалить все файлы в папке \Work:
Команда del выводит следующий запрос:
Все файлы в каталоге будут удалены. Продолжать [Y(да)/N(нет)]?
Для удаления всех файлов в текущей папке следует нажать Y и ENTER, для отмены удаления N и ENTER.
Перед использованием команды del для удаления группы файлов, заданной с помощью символов подстановки, полезно вначале вызвать команду dir с теми же самыми символами для вывода списка файлов, которые будут удалены.
Примеры
Чтобы удалить все файлы из папки Test на диске C, введите одну из следующих команд:
Del (erase)
Удаление заданных файлов.
Синтаксис
Параметры
[диск:][путь] имя_файла Задание расположения и имени файла для удаления. Параметр имя_файла является обязательным. Допускается использование нескольких имен файлов. Имена файлов следует разделять пробелом, запятой или точкой с запятой. /p Задание удаления с подтверждением для каждого файла. /f Задание удаления файлов с атрибутом «Только чтение». /s Удаление заданных файлов в каталоге и всех его подкаталогах. Выводит имена удаляемых файлов. /q Задание автоматического режима. Не выводится подтверждение на удаление. /a Удаление файлов с заданными атрибутами. атрибуты Задание следующих атрибутов файла
Атрибут | Описание |
---|---|
r | Только чтение |
a | Архивный |
s | Системный |
h | Скрытый |
— | Префикс «нет» |
/? Отображение справки в командной строке.
Примечания
Если задан параметр /p, команда del выводит на экран имя каждого удаляемого файла и следующее сообщение:
имя_файла, Удалить [Y(да)/N(нет)]?
Для подтверждения удаления следует нажать клавишу Y, для отмены удаления и перехода к следующему файлу следует нажать N (если задана группа файлов) или CRTL+C для остановки работы команды del.
Если расширения командного процессора отключены, параметр командной строки /s выводит все ненайденные, а не удаленные файлы (т. е. имеет противоположный смысл). Дополнительные сведения об отключении расширений командного процессора смотрите в разделе cmd.
Все файлы в каталоге могут быть удалены с помощью команды del с параметрами [диск:]путь. Например, следующая команда позволяет удалить все файлы в папке \Work:
Команда del выводит следующий запрос:
Все файлы в каталоге будут удалены. Продолжать [Y(да)/N(нет)]?
Для удаления всех файлов в текущей папке следует нажать Y и ENTER, для отмены удаления N и ENTER.
Перед использованием команды del для удаления группы файлов, заданной с помощью символов подстановки, полезно вначале вызвать команду dir с теми же самыми символами для вывода списка файлов, которые будут удалены.
Примеры
Чтобы удалить все файлы из папки Test на диске C, введите одну из следующих команд:
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Пакетные файлы (bat, батники) Windows
Содержание статьи:
Вместо вступления. Что такое «батник»
Для удобства написания и, естественно, восприятия разобью статью по разделам. Но сначала:
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Некоторые манипуляции с пакетными файлами могут нанести вред системе (порой даже непоправимый), поэтому предупреждаю сразу, ни автор статьи, ни администрация сайта не несут абсолютно никакой ответственности за последствия, которые может повлечь за собой выполнение действий, представленных в этой статье. Все материалы представлены здесь исключительно с образовательной целью, и для ознакомления. Надеюсь на ваше понимание и прямоту ваших рук.
Часть первая. Основные моменты при создании bat-файлов
Часть вторая. Синтаксис при написании bat-файлов
Приступим.
Часть третья. Резервное копирование при помощи батников
Автоматическое копирование каталогов в папку backup
Для копирования каких-либо данных используется команда copy (копирование файла/файлов) или xcopy (копирование каталогов). Т.е., допустим, нам необходимо делать бэкап содержимого папки, в которой находятся ваши данные к дипломной работе (материалы, приложения, черновик самой работы и т.д.).
В этом случае текст будет следующим
del удаляет ранее созданную вторую рк.
rmdir переименовывает первую рк во вторую.
xcopy создаёт новую рк.
Атрибут /s применяет команду ко всем подкаталогам, атрибут /q отключает запрос на подтверждение действий.Если в двух копиях смысла нет, можно сделать так, чтобы заменялись только те файлы, которые были изменены, те же, которые не изменились, либо вообще были удалены из исходной папки, затронуты не будут. Для этого пишем следующее
Создание бэкапа в архиве
Архив папки D:\diplom будет создаваться в E:\backup, именем будет дата и время создания архива, т.е., например 16-Aug-12–14-06-53
Часть четвертая. Автоматизация процесса создания и удаления файлов/каталогов с использованием bat-файлов
Как создать папку из батника
Начнём с самого простого. Создание папки. Папка создаётся командой MD
Чтобы создать папку с именем backup в корне диска D:\, нам необходимо собрать следующего вида пакетный файл
Если же, допустим, нужна каждый день новая папочка с датой на месте имени, то батник будет иметь вид
Здесь строчкой set datetemp=%date:
-10% мы создаём переменную datatemp на время работы батника и присваиваем ей 10 символов значения системной даты;
Как создать текстовый файл из батника
С созданием пустых текстовых файлов дело чуть сложнее. Такой команды просто нет, нужно что-то в этот файл писать. Чтобы выйти из ситуации воспользуемся значением nul (это даже не нулевое значение, а его отсутствие)
Также, как и в примере с папкой, можно сделать именем текущую дату
Автоматическая очистка папки из батника
Теперь, что касается удаления. Тоже достаточно часто используемая область работы для батников. Так, например, без помощи спец.программ можно при каждом запуске (опять же, поместив пакетный файл в автозагрузку) очищать temp на вашей машине. Содержимое будет следующим
Строчкой cd «C:\Windows\Temp\» мы переходим в папку temp
Строкой echo Y|del *.* удаляем содержимое этой папки (не саму папку!)
Часть пятая. Прочие возможности bat-файлов
Возможностей, на самом деле, огромное множество. Здесь для примера рассмотрим некоторые из них.
/S заставит батник показать содержимое не только каталога, но и всех подкаталогов.
c:\ поможет отобразить содержимое не того каталога, откуда запускается бат-файл, а нужного нам.
X:\file.txt сохранит конечный файл со списком содержимого в указанное нами место;
Запуск файлов из командной строки
Очень часто полезным оказывается возможность запуска объектов из командной строки (в данном случае уже из бат-файлов). Причем как программ, так и других видов файлов (графических изображений, медиафайлов, текстовых документов и т.п.)
К примеру, если в автозагрузку добавить текстовый документ, то при включении ПК после загрузки системы вы его сразу увидите. Либо откроется плеер и будет проигрывать соответствующий трек. (Подробнее про способы добавления файлов в автозагрузку вы можете прочитать в статье: Автозагрузка. Добавление приложений в автозагрузку Windows)
Для того, чтобы это реализовать, нужно просто в теле бат-файла прописать точный путь до необходимого объекта. Например
Для системных же программ нужно указать лишь её обозначение.
При выполнении этого батника откроется калькулятор. В данном случае строчку chcp 1251 можно опустить (как и в некоторых ситуациях из примеров выше), однако если уж стандартизировать все наши пакетный файлы, то её можно и оставить, вреда не будет.
Часть шестая. Хитрости или шутки в сторону
Здесь рассмотрим ещё несколько интересных возможностей для применения батников. Из названия ясно, что некоторые из действий могут навредить системе (хотя это можно сделать и «голыми руками»), но если делать всё с умом, то может выйти достаточно интересно.
Шпионские штучки. Похищаем содержимое флешки
В самом начале статьи было указанно, что команды в батниках выполняются последовательно, если это не оговорено в самом теле исполнительного файла. Рассмотрим именно этот частный случай. Нуууу, допустим. Вы знаете, что к вам придёт знакомый (а может, знакомая) с просьбой произвести какие-то манипуляции с его/её флэш-карточкой, и вам очень хотелось бы слить все данные с этого накопителя на ваш ПК. Но делать это при госте не совсем удобно, да и просто можно получить «красную карточку». Что мы в таком случае делаем? Создаём батник следующего содержания
Создаём на этот бат-файл ярлычок, в свойствах ярлыка указываем, чтобы файл запускался в свёрнутом состоянии. Дважды кликаем по ярлыку. Что имеем.
:test обозначает начало действия батника
if exist g:\ goto go проверяет наличие в компьютере диска G:\, если он есть, то переходим к части :go (суть в том, что обычно вставленная флешка получает для обозначения первую свободную в системе букву латинского алфавита, проследить это на своём компе не так уж сложно. Вот именно эту буковку мы и указываем вместо G:\)
goto test если диск G:\ не был найден, возвращаемся к началу части :test
:go обозначает начало действия второй части батника
xcopy «G:\*.*» «C:\упс\*.*» копирует всё содержимое диска G:\ в папку упс на диске C:\
Т.е. после того, как мы запустили файл с ярлыка, он запускается в свёрнутом состоянии и циклически проверяет наличие флешки в ПК. Как только флешка там засветится, начнётся копирование всех данных с неё в указанную папку, причем привычного окна копирования файлов не выскочит, всё будет отображаться в свёрнутом окне терминала.Ну, всё что было описанно выше, полезно на своём компе, однако есть несколько плюшек, с помощью которых можно подшутить над другом/подругой.
Маленький вирус в автозагрузку
В общем виде всё будет выглядеть так: отправляем человечку файлик любым удобным способом, он запускает его на своём ПК, мы немного смеёмся, а потом говорим человечку, в чём соль и как всё исправить.Обычно, если что-то идёт не так, рядовой юзер первым делом перезагружает комп. Чтобы наш батник продолжал действовать и после рестарта, необходимо добавить его в автозагрузку (подчеркиваю, такие шутки проходят только с не самыми прошаренными пользователями ПК, более опытные, скорее всего, запросто найдут причину метаморфоз системы и легко избавятся от неё). Для этого в батничке пропише следующее
Первая строка добавляет файл в автозагрузку для всех пользователей на Windows XP (для конкретного пользователя в качестве пути указываем %USERPROFILE%\»Главное меню»\Программы\Автозагрузка\)
Вторая строка добавляет файл в автозагрузку для Windows 7.
Начало обеих строк в виде copy %0 означает копирование «самого себя».
Это сделали. Ещё нам хотелось бы, чтобы после запуска батника и при каждой загрузке ПК появлялась весёленькая надпись, к примеру, «ТЫ ЛАМЕР!»
Для этого добавляем следующее
Эта часть основанна на скриптах. Подробно расписывать не буду, кому интересно, найдёт материал в сети. Скажу лишь, что для некоторых ОС вид этого блока может слегка отличаться. Так, например, в семёрке (Win7) скрипт может выглядеть следующим образом
Однако, и первый вариант будет работать.
Также окошко с текстом можно добавить в обход скриптов, оно будет, так сказать, стилизованное, виндовое от текущего пользователя с указанием текущей даты и времени
Едем дальше, ближе к вкусностям.
Чтобы наш объект экспериментов растерялся ещё больше, в тело батника по желанию добавляем что-нибудь из следующего:
Команда rundll32 keyboard, disable отключит клавиатуру вплоть до следующей перезагрузки, а rundll32 mouse, disable то же самое проделает с мышью. Если батник в автозагрузке, то при рестарте это дело, разумеется, повторится.
Ну и del «%SystemRoot%Cursors*.*» >nul удалит курсоры мыши ( пользоваться с осторожностью и в самых крайних случаях! )
Теперь остаётся только скомпоновать желаемые строки в единый код
Часть седьмая. Упаковка исполнительного файла
Здесь хочу отметить, что мало кто станет запускать ваш батник хотя бы потому, что он имеет немного подозрительный вид. Исправить это можно двумя способами:
Программный способ упаковки батников
Упаковка батников в SFX-архив
Т.е. когда дело дойдёт до этой команды, система переключится на исполнение файла с названием sled.bat, а затем вернётся к исходному.
Если же надо, чтобы работа первого батника не прерывалась, то используем другую команду
Вместо заключения
Будьте осторожны и удачных вам экспериментов
Как удалить файлы / подпапки в определенном каталоге в командной строке в Windows
Я хочу удалить все файлы и подпапки в этом каталоге, но не сам каталог.
Есть ли какая-то команда для этого?
Вы можете использовать этот скрипт для очистки папки и файлов в C:\Temp исходном коде :
Создайте пакетный файл (скажем, delete.bat), содержащий указанную выше команду. Перейдите в папку, в которой находится файл delete.bat, а затем выполните команду: delete.bat
rmdir моя самая любимая команда для работы. Он работает для удаления огромных файлов и папок с подпапками. Резервная копия не создается, поэтому перед выполнением этой команды убедитесь, что вы скопировали свои файлы безопасно.
Это автоматически удаляет папку и все файлы и подпапки.
Затем создайте этот каталог снова:
Это удалит папки и файлы и оставит папку позади.
. удаляет все файлы и папки в данном каталоге, но не сам каталог.
. И командную строку FOR следует изменить на, for /F «eol=| delims=» %%I in (‘dir «%dir%\*» /AD /B 2^>nul’) do rd /Q /S «%dir%\%%I» поскольку FOR игнорирует каталоги со скрытым набором атрибутов. DIR с параметрами /AD /B выводит все каталоги только с их именами. Кстати, dir это не хорошее название для переменной среды.
Вы получите сообщение об ошибке, сообщающее, что команда RMDIR не может получить доступ к текущей папке, поэтому она не может удалить ее.
Обновление :
Из этого полезного комментария (спасибо Moritz Both ) вы можете добавить && между ними, поэтому RMDIR не запустите, если CD команда не будет выполнена (например, имя каталога с ошибкой):
/ S: удаляет дерево каталогов (указанный каталог и все его подкаталоги, включая все файлы).
/ Q: Указывает тихий режим. Не запрашивает подтверждения при удалении дерева каталогов. (Обратите внимание, что / q работает, только если указан / s.)
RD расшифровывается как REMOVE Directory.
/ S: Удалить все файлы и подпапки в дополнение к самой папке. Используйте это, чтобы удалить все дерево папок.
Я использую Powershell
Он удалит содержимое папки, а не саму папку.
Простое решение для единой командной строки, которое, конечно же, также можно использовать в командном файле:
Эта командная строка содержит три команды, выполняемые одна за другой.
Первая команда PUSHD помещает текущий путь к каталогу в стек, а затем создает %PathToFolder% текущий каталог для запуска процесса команды.
Это также работает для путей UNC по умолчанию, поскольку расширения команд включены по умолчанию, и в этом случае PUSHD создает временную букву диска, которая указывает на указанный сетевой ресурс, а затем изменяет текущий диск и каталог, используя вновь определенную букву диска.
PUSHD выводит следующее сообщение об ошибке для обработки STDERR, если указанный каталог вообще не существует:
Система не может найти указанный путь.
Следующая команда RD выполняется только в том случае, если изменение текущего каталога для текущего командного процесса на указанный каталог прошло успешно, то есть указанный каталог вообще существует.
Команда RD с параметрами /Q и тихо /S удаляет каталог со всеми подкаталогами, даже если указанный каталог содержит файлы или папки со скрытым атрибутом или с установленным атрибутом только для чтения. Системный атрибут никогда не препятствует удалению файла или папки.
Папки, используемые в качестве текущего каталога для любого запущенного процесса. Все дерево папок в такой папке не может быть удалено, если папка используется в качестве текущего каталога для любого запущенного процесса.
Файлы, открытые в настоящее время любым запущенным процессом с правами доступа к файлу, установленными для открытия файла, чтобы предотвратить удаление файла во время открытия работающим приложением / процессом. Такой открытый файл также предотвращает удаление всего дерева папок в открытый файл.
Файлы / папки, для которых у текущего пользователя нет необходимых (NTFS) разрешений на удаление файла / папки, что также предотвращает удаление дерева папок в этот файл / папку.
Первая причина не удалять папку используется этой командной строкой для удаления всех файлов и подпапок указанной папки, но не самой папки. Папка временно становится текущей директорией для запуска командного процесса, который предотвращает удаление самой папки. Конечно, это приводит к выводу сообщения об ошибке командой RD :
Процесс не может получить доступ к файлу, потому что он используется другим процессом.
POPD извлекает путь каталога, выдвинутый PUSHD из стека, и изменяет текущий каталог для запуска процесса команды на этот каталог, то есть восстанавливает исходный текущий каталог. POPD удаляет временную букву диска, созданную PUSHD в случае пути к папке UNC.
Чтобы лучше понять используемые команды, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте справку, отображаемую для каждой команды.
Пакетный файл сначала гарантирует, что переменная среды PathToFolder действительно определена с путем к папке без двойных кавычек и без обратной косой черты в конце. Обратная косая черта в конце не будет проблемой, но двойные кавычки в пути к папке могут быть проблематичными, поскольку PathToFolder во время выполнения пакетного файла значение объединяется с другими строками.
Команда DEL используется для удаления всех файлов в указанном каталоге.
Команды FOR и RD используются для удаления всех подкаталогов в указанном каталоге. Но for /D не используется, поскольку FOR игнорирует в этом случае подкаталоги с установленным атрибутом hidden. По этой причине for /F используется для запуска следующей командной строки в отдельном командном процессе, запущенном в фоновом режиме с помощью %ComSpec% /c :
Оператор перенаправления > должен быть экранирован с помощью символа вставки, ^ в командной строке FOR интерпретироваться как литеральный символ, когда интерпретатор команд Windows обрабатывает эту командную строку перед выполнением команды FOR, которая выполняет встроенную dir командную строку в отдельном запущенном командном процессе. на заднем фоне.
FOR обрабатывает захваченный вывод, записанный для обработки STDOUT запущенного командного процесса, которые являются именами подкаталогов без пути и никогда не заключаются в двойные кавычки.
Параметр FOR with /F игнорирует пустые строки, которые здесь не встречаются, поскольку DIR с параметром /B не выводит пустые строки.
FOR также игнорирует строки, начинающиеся с точки с запятой, которая является символом конца строки по умолчанию. Имя каталога может начинаться с точки с запятой. По этой причине eol=| используется для определения символа вертикальной черты как символа конца строки, который ни один каталог или файл не может иметь в своем имени.
Команда FOR запускает команду RD для каждого имени каталога без пути, поэтому в командной строке RD необходимо еще раз указать путь к папке, который объединяется с именем подпапки.
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.