Batch file 在特定文件夹中保留x个最新文件的批处理文件
如何指定特定文件夹?例如在“c:\temp带空格”中 此命令有效,但仅在执行该命令的文件夹中: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
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
)是有效的文件名字符。如果文件的名称以分号开头,则需要使用它。太好了!这就是我要找的。