Я нашел код для удаления папок, в этом случае удаление всех, кроме 'n' # папок. Я создал 10 тестовых папок, плюс 1, которые уже были там. Я хочу удалить все, кроме 4. Код работает, он оставляет 4 из моих тестовых папок, за исключением того, что он также оставляет другую папку. Есть ли какой-либо атрибут другой папки, которая проверяется в пакетном файле, который мешает ей удаляться? Это было создано через работу пару недель назад.Пакетный файл для удаления папок
Вот код, который я украл (но на самом деле не понимает, детали):
rem DOS - Delete Folders if # folders > n
@Echo Off
:: User Variables
:: Set this to the number of folders you want to keep
Set _NumtoKeep=4
:: Set this to the folder that contains the folders to check and delete
Set _Path=C:\MyFolder_Temp\FolderTest
If Exist "%temp%\tf}1{" Del "%temp%\tf}1{"
PushD %_Path%
Set _s=%_NumtoKeep%
If %_NumtoKeep%==1 set _s=single
For /F "tokens=* skip=%_NumtoKeep%" %%I In ('dir "%_Path%" /AD /B /O-D /TW') Do (
If Exist "%temp%\tf}1{" (
Echo %%I:%%~fI >>"%temp%\tf}1{"
) Else (
Echo.>"%temp%\tf}1{"
Echo Do you wish to delete the following folders?>>"%temp%\tf}1{"
Echo Date Name>>"%temp%\tf}1{"
Echo %%I:%%~fI >>"%temp%\tf}1{"
))
PopD
If Not Exist "%temp%\tf}1{" Echo No Folders Found to delete & Goto _Done
Type "%temp%\tf}1{" | More
Set _rdflag= /q
Goto _Removeold
Set _rdflag=
:_Removeold
For /F "tokens=1* skip=3 Delims=:" %%I In ('type "%temp%\tf}1{"') Do (
If "%_rdflag%"=="" Echo Deleting
rd /s%_rdflag% "%%J")
:_Done
If Exist "%temp%\tf}1{" Del "%temp%\tf}1{"
Ваше форматирование перепутано. Попробуйте отредактировать вопрос, чтобы исправить это. –
@Echo ON, чтобы посмотреть, что он делает. –