Batch file 在特定文件夹中保留x个最新文件的批处理文件

Batch file 在特定文件夹中保留x个最新文件的批处理文件,batch-file,delete-file,Batch File,Delete File,如何指定特定文件夹?例如在“c:\temp带空格”中 此命令有效,但仅在执行该命令的文件夹中: for /f "skip=7 eol=: delims=" %%F in ('dir /b /o-d *.txt') do @del "%%F" 但是如何指定某个文件夹呢?这不起作用: for /f "skip=3 eol=: delims=" %%F in ('dir /b /o-d "c:\temp\ with spaces*.txt"') do @del "%%F" 它在当前目录中查找txt

如何指定特定文件夹?例如在“c:\temp带空格”中

此命令有效,但仅在执行该命令的文件夹中:

for /f "skip=7 eol=: delims=" %%F in ('dir /b /o-d *.txt') do @del "%%F"
但是如何指定某个文件夹呢?这不起作用:

for /f "skip=3 eol=: delims=" %%F in ('dir /b /o-d "c:\temp\ with spaces*.txt"') do @del "%%F"
它在当前目录中查找txt文件,如果.bat文件在另一个文件夹中,则该文件不起作用


如果您不指定
/s
而手动运行
dir/b
,则会非常感谢您的帮助,因为
@del“%%F”
只列出文件名,而不列出完整路径,因此
@del”%%F>会尝试从当前文件夹中删除该文件

只需在
del
中指定完整路径:

@del "c:\temp\%%F"

只需更改到所需的文件夹

pushd“x:\some folder\with\files”&&(
对于/f“skip=7 eol=:delims=“%%f in('dir/b/o-d*.txt')do@del”%%f”
邻苯二胺
)

为什么
eol=:
?这似乎是多余的。@wOxxOm,
(默认值
eol
)是有效的文件名字符。如果文件的名称以分号开头,则需要使用它。太好了!这就是我要找的。