Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理文件以逐个处理多个PDF,然后将其删除_Windows_Batch File_Pdf_Jpeg - Fatal编程技术网

Windows 批处理文件以逐个处理多个PDF,然后将其删除

Windows 批处理文件以逐个处理多个PDF,然后将其删除,windows,batch-file,pdf,jpeg,Windows,Batch File,Pdf,Jpeg,我有一个批处理文件,它采用多页pdf格式,然后将每一页转换为单独的JPEG格式。这是通过将pdf拖动到批处理文件中来实现的。我现在需要得到这个批处理文件来搜索目录中的所有pdf,并一次处理每个pdf,一旦处理完成,就删除或移动源pdf。这是目前为止的批处理文件。(我也在使用鬼脚本库) 我现在得到这个错误 Error: /undefinedfilename in (Coffee) Operand stack: Execution stack: %interp_exit .runexec

我有一个批处理文件,它采用多页pdf格式,然后将每一页转换为单独的JPEG格式。这是通过将pdf拖动到批处理文件中来实现的。我现在需要得到这个批处理文件来搜索目录中的所有pdf,并一次处理每个pdf,一旦处理完成,就删除或移动源pdf。这是目前为止的批处理文件。(我也在使用鬼脚本库)

我现在得到这个错误

Error: /undefinedfilename in (Coffee)
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push
Dictionary stack:
   --dict:1195/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.14 (2014-03-26)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefinedfilename in (Coffee)
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push
Dictionary stack:
   --dict:1195/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.14 (2014-03-26)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefinedfilename in (OF)

请尝试此代码,它可能适用于您:

echo off
echo.
echo.

set DPI=300
set ALPHABITS=2
set QUALITY=95
set FIRSTPAGE=1
set LASTPAGE=9999
REM MEMORY in MB
set MEMORY=300

set JPGFILE=%PDFFILE:.pdf=-%%%d.jpg

set GS=%2
IF "%GS%" == "" (
    set GS="bin/gswin32c.exe"
    echo Loaded in 32bit mode
    echo.
)

for /f "delims=" %%a in ('dir /b *.pdf') do %GS% -sDEVICE=jpeg -sOutputFile=%JPGFILE% -r%DPI% -dNOPAUSE -dFirstPage=%FIRSTPAGE% -dLastPage=%LASTPAGE% -dJPEGQ=%QUALITY% -dGraphicsAlphaBits=%ALPHABITS%  -dTextAlphaBits=%ALPHABITS%  -dNumRenderingThreads=4 -dBufferSpace=%MEMORY%000000  -dBandBufferSpace=%MEMORY%000000 -c %MEMORY%000000 setvmthreshold -f %%a -c quit


move *.jpg "C:\ProgramData\EFI\EFI eXpress\Work\JobFolder\"
echo Finished.
pause

请尝试此代码,它可能适用于您:

echo off
echo.
echo.

set DPI=300
set ALPHABITS=2
set QUALITY=95
set FIRSTPAGE=1
set LASTPAGE=9999
REM MEMORY in MB
set MEMORY=300

set JPGFILE=%PDFFILE:.pdf=-%%%d.jpg

set GS=%2
IF "%GS%" == "" (
    set GS="bin/gswin32c.exe"
    echo Loaded in 32bit mode
    echo.
)

for /f "delims=" %%a in ('dir /b *.pdf') do %GS% -sDEVICE=jpeg -sOutputFile=%JPGFILE% -r%DPI% -dNOPAUSE -dFirstPage=%FIRSTPAGE% -dLastPage=%LASTPAGE% -dJPEGQ=%QUALITY% -dGraphicsAlphaBits=%ALPHABITS%  -dTextAlphaBits=%ALPHABITS%  -dNumRenderingThreads=4 -dBufferSpace=%MEMORY%000000  -dBandBufferSpace=%MEMORY%000000 -c %MEMORY%000000 setvmthreshold -f %%a -c quit


move *.jpg "C:\ProgramData\EFI\EFI eXpress\Work\JobFolder\"
echo Finished.
pause

这应该是可行的-尽管两个术语
“%%~na.jpg”
“%%a”
有双引号以允许长文件名,我只是假设可执行文件正确处理它们

@echo off
echo.
echo.

set DPI=300
set ALPHABITS=2
set QUALITY=95
set FIRSTPAGE=1
set LASTPAGE=9999
REM MEMORY in MB
set MEMORY=300

set GS=%2
IF "%GS%" == "" (
    set GS="bin/gswin32c.exe"
    echo Loaded in 32bit mode
    echo.
)

md "done" 2>nul

for %%a in (*.pdf) do (

%GS% -sDEVICE=jpeg -sOutputFile="%%~na.jpg" -r%DPI% -dNOPAUSE -dFirstPage=%FIRSTPAGE% -dLastPage=%LASTPAGE% -dJPEGQ=%QUALITY% -dGraphicsAlphaBits=%ALPHABITS%  -dTextAlphaBits=%ALPHABITS%  -dNumRenderingThreads=4 -dBufferSpace=%MEMORY%000000  -dBandBufferSpace=%MEMORY%000000 -c %MEMORY%000000 setvmthreshold -f "%%a" -c quit

move "%%a" "done"
)

move *.jpg "C:\ProgramData\EFI\EFI eXpress\Work\JobFolder\"
echo Finished.
pause

这应该是可行的-尽管两个术语
“%%~na.jpg”
“%%a”
有双引号以允许长文件名,我只是假设可执行文件正确处理它们

@echo off
echo.
echo.

set DPI=300
set ALPHABITS=2
set QUALITY=95
set FIRSTPAGE=1
set LASTPAGE=9999
REM MEMORY in MB
set MEMORY=300

set GS=%2
IF "%GS%" == "" (
    set GS="bin/gswin32c.exe"
    echo Loaded in 32bit mode
    echo.
)

md "done" 2>nul

for %%a in (*.pdf) do (

%GS% -sDEVICE=jpeg -sOutputFile="%%~na.jpg" -r%DPI% -dNOPAUSE -dFirstPage=%FIRSTPAGE% -dLastPage=%LASTPAGE% -dJPEGQ=%QUALITY% -dGraphicsAlphaBits=%ALPHABITS%  -dTextAlphaBits=%ALPHABITS%  -dNumRenderingThreads=4 -dBufferSpace=%MEMORY%000000  -dBandBufferSpace=%MEMORY%000000 -c %MEMORY%000000 setvmthreshold -f "%%a" -c quit

move "%%a" "done"
)

move *.jpg "C:\ProgramData\EFI\EFI eXpress\Work\JobFolder\"
echo Finished.
pause

实际上只是注意到每次输出的文件都被过度写入。我认为%%~na是罪魁祸首。如何将1、2、3添加到输出的文件名中,使其不会每次被覆盖?如果在包含一个pdf文件的文件夹中运行,它会生成哪些文件
gswin32c.exe
应该在每个页面上添加1,2,3。只需添加一个似乎每次都被重写的文件。我从来没有拿出过一个以上的文件您的原始脚本使用了
-%%%d
,我不明白为什么会有这样的文件,但现在它似乎是
gswin32c.exe
维护的计数器。将
“%%~na.jpg”
替换为
“%%~na-%%%d.jpg”
并查看其工作原理。您可能必须将
%%d
减少为
%%d
%d
,但对每个版本进行测试将显示使用哪个版本。用一个pdf文件测试它,直到你整理出正确的语法为止。实际上,你只是注意到输出的文件每次都被重写了。我认为%%~na是罪魁祸首。如何将1、2、3添加到输出的文件名中,使其不会每次被覆盖?如果在包含一个pdf文件的文件夹中运行,它会生成哪些文件
gswin32c.exe
应该在每个页面上添加1,2,3。只需添加一个似乎每次都被重写的文件。我从来没有拿出过一个以上的文件您的原始脚本使用了
-%%%d
,我不明白为什么会有这样的文件,但现在它似乎是
gswin32c.exe
维护的计数器。将
“%%~na.jpg”
替换为
“%%~na-%%%d.jpg”
并查看其工作原理。您可能必须将
%%d
减少为
%%d
%d
,但对每个版本进行测试将显示使用哪个版本。用一个pdf文件测试它,直到你找到正确的语法为止。