【发布时间】:2021-11-05 05:50:21
【问题描述】:
任务:使用变量%folder% 和%wildcards% 搜索驱动器。找到的文件由path-to-file|filesize 与database.txt 中的条目进行比较。如果找到匹配项,则将其复制到workinglist.txt,如果没有,则创建一个新条目。重点是使用mediainfo提供的存储%duration%数据,大大减少处理时间。
for /r "%folder%" %%a in (%wildcards%) do (
findstr /i /c:"%%a|%%~za" "%appdata%\df\database.txt" >>%appdata%\df\workinglist.txt || mediainfo --output="General;%%CompleteName%%|%%FileSize%%|%%Duration%%" "%%a" >>%appdata%\df\workinglist.txt
)
问题在于database.txt 应该包含所有可能的数据,而不仅仅是%folder% 和%wildcards% 指定的数据,这意味着任何新条目都需要添加到workinglist.txt 和@ 987654333@文件。
-
如何将来自
mediainfo的数据同时添加到workinglist.txt和database.txt而无需另一个(慢)mediainfo查询? -
如何将一长行代码拆分为另一行或几行代码以使其更易于阅读和管理?
【问题讨论】:
-
findstr ... >> workinglist || ( mediainfo ... >> workinglist & mediainfo ... >> database)怎么样 -
一个 mediainfo 查询使脚本非常慢,执行两次会慢一倍。
-
或
findstr ... >> workinglist || for /f %%c in ('mediainfo ...') do ( echo %%c >> workinglist & echo %%c >> database )?避免执行 mediainfo 两次 -
@NahuelFouilleul 不确定如何设置附加
for循环的选项以使其正确显示。想要将其格式化为答案? -
如果您显示几行
workinglist.txt和database.txt会有所帮助。
标签: windows for-loop batch-file cmd mediainfo