Batch file 批量删除文件夹中第n个文件的内容
我有一个程序可以根据文件顺序处理视频文件,例如,它会调用文件夹中的第45个或第10个文件,但不会调用同一个文件两次。现在,为了节省SSD空间,我只想删除第n个文件的内容,同时保留该文件本身。批处理文件解决方案没有多大乐趣,因为批处理无法真正计数或处理阵列和索引,它需要像这样工作:设置计数器,列出文件,在计数与所需数字匹配时,通过它们进行计数,做点什么Batch file 批量删除文件夹中第n个文件的内容,batch-file,file-io,Batch File,File Io,我有一个程序可以根据文件顺序处理视频文件,例如,它会调用文件夹中的第45个或第10个文件,但不会调用同一个文件两次。现在,为了节省SSD空间,我只想删除第n个文件的内容,同时保留该文件本身。批处理文件解决方案没有多大乐趣,因为批处理无法真正计数或处理阵列和索引,它需要像这样工作:设置计数器,列出文件,在计数与所需数字匹配时,通过它们进行计数,做点什么 @echo off setlocal enabledelayedexpansion set i=0 for %%f in (*) do (
@echo off
setlocal enabledelayedexpansion
set i=0
for %%f in (*) do (
set /A i=!i!+1
if !i! EQU 45 (
echo overwriting %%f
rem echo. > %%f
)
)
rem
使该行成为注释(备注),删除rem
使其实际覆盖文件
注意,这不能很好地处理子目录。第n个是通过什么排序的?按字母顺序排列的按时间顺序?按字母顺序。这是标准,所以我不认为我需要澄清。你说“取决于文件顺序”-我理解这意味着你处理多个订单。无论如何,如果您愿意使用PowerShell,它将变得微不足道-
”>(gci)[45]
-gci将文件和文件夹列为一个数组,将空字符串回送到名为45的文件中。