0

我是 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。希望不要违反政策。

4

2 回答 2

1

将带空格的路径/文件名括在引号中以告诉解释器,这不是两个词,而是一个字符串(或者更好:习惯于始终将路径/文件名括起来):

"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)`

在构建包含几十个或数百个几乎相同的行的批处理文件之前,请使用for循环处理.tif文件夹中的所有文件:

@echo off
for %%a in ("D:\originaldirectory\*.tif") do (
  "C:\Program Files\IrfanView\i_view64.exe" "%%~fa" /extract=("D:\newdirectory",tif)
)

有关更多信息,请参阅for /?

于 2017-06-01T07:44:24.920 回答
1

您需要在批处理中使用引号调用可执行文件。此外,>路径中的 也不起作用。还可以考虑使用 for 循环而不是创建单个批处理行。

请试试这个:

"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)
于 2017-06-01T07:29:41.743 回答