为什么我的 IrfanView 命令在批处理文件上不起作用,但在直接在 CMD 中键入时却起作用?
Why does my IrfanView command not work on batch file but work when typing directly in CMD?
我是 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 window 中输入它并且它正常工作,如下所示:
C:\Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif)
你能告诉我我的批处理文件哪里出了问题吗?
这是另一个问题。将批处理文件内容键入(或复制并粘贴)到 CMD 中就可以了。但在成功拆分后,原始的多图像文件会自动打开。我怎样才能停用此功能?
注:此处交叉post:https://irfanview-forum.de/showthread.php?t=11150&p=47111#post47111
。希望不要违反政策。
您需要在批处理中调用带引号的可执行文件。此外,路径中的 >
也不起作用。还可以考虑使用 for 循环而不是创建单个批处理行。
请试试这个:
"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)
用空格将 paths/filenames 括在引号中告诉解释器,这不是两个词,而是一个字符串(或者更好:习惯总是将 path/filenames 括起来):
"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 /?
。
我是 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 window 中输入它并且它正常工作,如下所示:
C:\Program Files\IrfanView>i_view64.exe D:\originaldirectory\filename1.tif /extract=(D:\newdirectory,tif)
你能告诉我我的批处理文件哪里出了问题吗?
这是另一个问题。将批处理文件内容键入(或复制并粘贴)到 CMD 中就可以了。但在成功拆分后,原始的多图像文件会自动打开。我怎样才能停用此功能?
注:此处交叉post:https://irfanview-forum.de/showthread.php?t=11150&p=47111#post47111
。希望不要违反政策。
您需要在批处理中调用带引号的可执行文件。此外,路径中的 >
也不起作用。还可以考虑使用 for 循环而不是创建单个批处理行。
请试试这个:
"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)
用空格将 paths/filenames 括在引号中告诉解释器,这不是两个词,而是一个字符串(或者更好:习惯总是将 path/filenames 括起来):
"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 /?
。