Я хочу удалить все файлы из структуры папок, поэтому у меня осталась пустая структура папок.
Это может быть достигнуто в пакетном или VBScript сценариях?
Я пробовал очень простую пакетную команду, но для этого требовалось, чтобы пользователь разрешил удаление каждого файла. Это не подходящее решение, так как существует много сотен файлов, и со временем оно значительно увеличится.
Что вы можете предложить?
rd /s /q "c:\folder a
выполнит рекурсивное удаление всех файлов и папок внутриFolder A
Ответы:
Это можно сделать с помощью PowerShell :
Эта команда получает каждый дочерний элемент
$path
, выполняет метод удаления для каждого элемента и работает довольно быстро. Структура папок осталась нетронутой.Если у вас могут быть файлы без расширения, используйте
вместо.
Похоже, что
-File
параметр мог быть добавлен после PowerShell v2. Если это так, тоЭто должно сделать трюк для файлов с расширением.
Если это не работает, проверьте, есть ли у вас актуальная версия Powershell
источник
-Include *.*
не-Include .
большая разница! :-)-Include .
?? Вот в чем проблема.powershell --version
? Разве они не могут использовать номер версии с положительными цифрами? Это просто безумие. Более 1300 голосов за вопрос о том, как узнать номер версии программы?Короткая и удобная PowerShell. Не уверен, с какой низшей версией PS он будет работать.
источник
rm *
так как на самом деле не рекомендуется форсировать (в любом случае в диалоговом окне подтверждения есть опция «Да для всех»).Вы можете сделать это с помощью
del
команды:/S
Переключатель , чтобы удалить только файлы рекурсивно.источник
/P
опцию, чтобы она попросила вас подтвердить каждое удаление, чтобы проверить это.attrib -s -r -h Folder\*.* /s /d
перед удалением. А для разрешений используйтеtakeown
команду.Читая между строк вашего исходного вопроса, я могу предложить альтернативную строку кода BATCH, которую вы можете использовать. При запуске будут удалены только файлы старше 60 дней. Таким образом, вы можете поместить это в запланированное задание, и при запуске оно удалит лишние файлы, которые вам не нужны, вместо того, чтобы уничтожить весь каталог. Вы можете изменить от 60 до 5 дней или даже 1 день, если хотите. Это не удаляет папки.
источник
Использование PowerShell:
источник
Используйте PowerShell для удаления отдельного файла или папки. Перед выполнением команды Delete в powershell мы должны убедиться, что вы вошли на сервер или ПК с учетной записью, которая имеет полный доступ к объектам, которые вы хотите удалить.
Пример: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/
Использование PowerShell Comnads для удаления файла
Приведенная выше команда выполнит и удалит файл «DummyfiletoDelete.txt», который находится внутри папки «C: \ dotnet-helpers».
Использование PowerShell Comnads для удаления всех файлов
Использование PowerShell Comnads для удаления всех файлов и папок
-recurse
сверлит вниз и находит намного больше файлов. Этот–recurse
параметр позволит PowerShell удалять любые дочерние элементы без запроса разрешения. Кроме того, параметр –force может быть добавлен для удаления скрытых или доступных только для чтения файлов.Использование команды -Force для принудительного удаления файлов
Использование команды PowerShell для принудительного удаления всех файлов
источник
Попробуйте это с помощью PowerShell. В этом примере я хочу удалить все файлы .class:
источник
В проводнике Windows выберите корневой каталог, содержащий все файлы и папки.
Искать *
Сортировать по типу (все папки будут вверху, а все файлы перечислены внизу)
Выберите все файлы и нажмите Удалить.
Это удалит все файлы и сохранит структуру каталогов.
источник
Удалите все файлы из текущего каталога и подкаталогов, но оставив структуру папок.
(
/Q
) переключатель для запроса пользователя, если он в порядке, чтобы удалитьВнимание : попробуйте без,
/Q
чтобы убедиться, что вы не удаляете ничего ценного.источник
Это самый простой способ ИМО
Откройте PowerShell, перейдите в каталог (
cd
), ТО(Пуф) все прошло ...
Если вы хотите удалить на основе определенного расширения
Все другие ответы, кажется, делают это более запутанным, чем необходимо.
источник
источник
В дополнение к приведенным выше ответам, на самом деле нет необходимости использовать Get-Childitem и передавать результат в конвейер в приведенных выше ответах, поскольку ключевое слово -Include включено в команду Remove-Item.
Можно просто:
Remove-Item -Include " . " "C: \ Temp" -Recurse
источник