Почему моя команда IrfanView не работает с командным файлом, но работает при наборе текста непосредственно в 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, и он работает нормально, например так:
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
, Надеюсь, что это не нарушает политику.
2 ответа
Заключите пути / имена файлов с пробелами в кавычки, чтобы сказать интерпретатору, что это не два слова, а одна строка (или даже лучше: привыкните всегда заключать пути / имена файлов):
"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 /?
для дополнительной информации.
Вам нужно вызвать исполняемый файл с кавычками в пакете. Так же >
в пути тоже не получится. Также рассмотрите возможность использования цикла for вместо создания отдельных партий.
Пожалуйста, попробуйте это:
"C:\Program Files\IrfanView\i_view64.exe" "D:\originaldirectory\filename1.tif" /extract=("D:\newdirectory",tif)