我是IrfanView的第一天用户并且有一个问题。我有一堆多页tiff文件,我想分别拆分所有这些文件。所以我用这样的命令写一个批处理文件:
C:\Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif)
C:\Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename2.tif /extract=(D:\newdirectory,tif)
......等等......
我把批处理文件放在D盘上,让我们说在“batchfolder”文件夹中。但它无法完成这项工作,每条不成功的案例都显示此消息(所有这些都不成功):
D:\batchfolder>C:\Program Files\IrfanView D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif) 1>i_view64.exe
'C:\Program' is not recognized as an internal or external command, operable program or batch file.
我想这与批处理文件位置有关,所以我把它带到C盘。但它仍然无法正常运行,这次出现了不同的消息:
C:\>C:\Program Files\IrfanView D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif) 1>i_view64.exe
Access is denied.
这个C:\>C:\
让我觉得批处理文件中的C:\
部分可能是多余的。所以我把它拿出来看起来像这样:
Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif)
...
但它无法使用D或C驱动器上的批处理文件。 然后我尝试直接在CMD窗口中输入它并且它正常工作,如下所示:
C:\Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif)
你能说出我的批处理文件出错的地方吗?
这是另一个问题。将批处理文件内容键入(或复制并粘贴)到CMD中可以正常工作。但成功拆分后,原始的多图像文件会自动打开。如何停用此功能?
注意:在此交叉发布:https://irfanview-forum.de/showthread.php?t=11150&p=47111#post47111
。希望它不违反政策。
答案 0 :(得分:1)
您需要在批处理中使用引号调用可执行文件。此外,路径中的>
也不起作用。还可以考虑使用for循环而不是创建单个批处理行。
请试试这个:
"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)
答案 1 :(得分:1)
将带有空格的路径/文件名用引号括起来告诉解释器,它不是两个字,而是一个字符串(甚至更好:习惯于总是包含路径/文件名):
"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)`
在使用dozends或数百个几乎相同的行构建批处理文件之前,请使用for
循环处理文件夹中的所有.tif
个文件:
@echo off
for %%a in ("D:\originaldirectory\*.tif") do (
"C:\Program Files\IrfanView\i_view64.exe" "%%~fa" /extract=("D:\newdirectory",tif)
)
有关详细信息,请参阅for /?
。