Batch file 第二次运行时需要批处理脚本跳过现有的.sfv文件

Batch file 第二次运行时需要批处理脚本跳过现有的.sfv文件,batch-file,checksum,exists,ignore,Batch File,Checksum,Exists,Ignore,制作了一个简单的批处理脚本,为文件夹中的每个文件创建一个.sfv。我远不是一名编码员,但我从不同的网站将其拼凑在一起,并使其发挥作用: for %%f in (*) do (cfv -C -f"%%f".sfv -tsfv "%%f") 问题是,如果我多次运行此批处理文件,则会再次检查现有文件,并将一个单独的.sfv文件创建为*.sfv.sfv 只是想知道,如果存在一个.sfv,如何将其写入忽略检查文件/写入一个新的.sfv?谢谢大家! 编辑:我尝试了以

制作了一个简单的批处理脚本,为文件夹中的每个文件创建一个.sfv。我远不是一名编码员,但我从不同的网站将其拼凑在一起,并使其发挥作用:

for %%f in (*) do (cfv -C -f"%%f".sfv -tsfv "%%f")
问题是,如果我多次运行此批处理文件,则会再次检查现有文件,并将一个单独的.sfv文件创建为*.sfv.sfv

只是想知道,如果存在一个.sfv,如何将其写入忽略检查文件/写入一个新的.sfv?谢谢大家!

编辑:我尝试了以下方法:

@echo off
@For /F "EOL=? Delims=" %%G In ('Dir /B /A:-D-S-L ^| "%__AppDir__%findstr.exe" /EILV ".sfv"') Do @If Not Exist "%%~nG.sfv" fsum -js "%%G" > "%%G.sfv"
它在每次运行时不添加.sfv.sfv文件方面做得非常好,太棒了!但现在的问题是,当脚本运行时,它必须读取每个文件,而不管旁边是否有.sfv文件

这里的想法是让脚本看到存在一个与原始文件具有相同文件名的sfv文件,如果该.sfv文件存在,则完全跳过该文件并移动到下一个文件,直到没有与之关联的.sfv文件为止。我知道这不容易用语言表达,所以让我试着举个例子

/parent directory/
linuxiso1.iso
linuxiso2.iso
linuxiso3.iso


*Cujo67 runs Batch.bat script*

/parent directory/
linuxiso1.iso
linuxiso1.sfv
linuxiso2.iso
linuxiso2.sfv
linuxiso3.iso
linuxiso3.sfv

对于当前的代码,它必须处理每个.iso文件,然后发现目录中已经有一个.sfv,并跳过它。如果.iso文件旁边已经有as对应的.sfv,想知道如何让这个脚本完全避免运行checksum命令。希望这更清楚一点,谢谢。

您的问题没有得到很好的解释,所以这里是我的最佳猜测(使用您提供的
cfv
命令选项),
@For/F“EOL=?Delims=“%%G In('Dir/B/a:-D-s-L^“%\uu-AppDir\uuu%findstr.exe”/EILV.sfv“)Do@If不存在“%%~nG.sfv”cfv-C-F“%%~nG.sfv”%%G”
终于重新审视了这一点(丢失但没有忘记!),并且部分有效。上面编辑的唯一问题是它会重新扫描每个文件,而不管旁边是否已经有相应的.sfv文件。