Batch file 批量删除文件夹中第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 (

我有一个程序可以根据文件顺序处理视频文件,例如,它会调用文件夹中的第45个或第10个文件,但不会调用同一个文件两次。现在,为了节省SSD空间,我只想删除第n个文件的内容,同时保留该文件本身。

批处理文件解决方案没有多大乐趣,因为批处理无法真正计数或处理阵列和索引,它需要像这样工作:设置计数器,列出文件,在计数与所需数字匹配时,通过它们进行计数,做点什么

@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的文件中。