Batch file 通过目录的命令行循环

Batch file 通过目录的命令行循环,batch-file,cmd,command-line-interface,Batch File,Cmd,Command Line Interface,我正在尝试编写一个批处理文件,该文件将在父目录上运行,并将在子目录中循环删除每个子目录中除最新的3个文件以外的所有文件。我现在所做的是在子目录中递归,但只跳过它遇到的3个最新文件,而不是每个子目录中的3个最新文件。我想我需要代码中的另一个循环,但是需要在哪里以及应该是什么方面的帮助。救命啊 到目前为止,我所做的只是作为一个测试来回应输出 @echo off pushd "%~1" for /f "skip=3 delims=" %%F in ( 'dir /s /a-d /o-d /b'

我正在尝试编写一个批处理文件,该文件将在父目录上运行,并将在子目录中循环删除每个子目录中除最新的3个文件以外的所有文件。我现在所做的是在子目录中递归,但只跳过它遇到的3个最新文件,而不是每个子目录中的3个最新文件。我想我需要代码中的另一个循环,但是需要在哪里以及应该是什么方面的帮助。救命啊

到目前为止,我所做的只是作为一个测试来回应输出

@echo off pushd "%~1" for /f "skip=3 delims=" %%F in ( 'dir /s /a-d /o-d /b') do ECHO del "%%F" /f popd @回音 pushd“%~1” 对于/f“skip=3 delims=“%%f in( “dir/s/a-d/o-d/b”)执行回显删除“%%F”/F 邻苯二胺 你可以试试这个:

@echo off pushd "%~1" for /D %%i in (*) do ( pushd "%%~i" for /f "skip=3 delims=" %%F in ( 'dir /a-d /o-d /b') do ECHO del /f "%%~F" popd ) popd @回音 pushd“%~1” 对于/D%%i in(*)do( pushd“%%~i” 对于/f“skip=3 delims=“%%f in( “dir/a-d/o-d/b”)do ECHO del/f“%%~f” 邻苯二胺 ) 邻苯二胺 你可以试试这个:

@echo off pushd "%~1" for /D %%i in (*) do ( pushd "%%~i" for /f "skip=3 delims=" %%F in ( 'dir /a-d /o-d /b') do ECHO del /f "%%~F" popd ) popd @回音 pushd“%~1” 对于/D%%i in(*)do( pushd“%%~i” 对于/f“skip=3 delims=“%%f in( “dir/a-d/o-d/b”)do ECHO del/f“%%~f” 邻苯二胺 ) 邻苯二胺
正是我需要的。。。格雷西亚斯!正是我需要的。。。格雷西亚斯!