Пакетный скрипт - Комплексная помощь по циклу - PullRequest
0 голосов
/ 14 июня 2011

Ладно, вот и все ... я работал над этим решением последние недели или около того, думал, что у меня его нет, но кажется, что что-то не так ... Вот мой код, и я приведу логическую разбивку:

::Programs
SET fox=C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe
SET spool=C:\WINDOWS\system32\PRNJOBS.vbs

::Directories
SET new=C:\PDF\New
SET printing=C:\PDF\Printing
SET finish=C:\PDF\Finish
SET errorfiles=C:\PDF\Error Files

::Important Files
SET syslog=C:\PDF\Script_Messages\PrintLOG.txt
SET emaillog=%tmp%\PrintLOG.txt
SET errlog=C:\PDF\Script_Messages\ErrorLOG.txt
SET emailerr=%tmp%\ErrorLOG.txt

CD "%new%"
MOVE /Y "*.pdf" "%printing%"
CD "%printing%"
FOR %%F IN (*.*) DO (
 START "" /B "%fox%" -p "%%~fF"
 FOR /F "USEBACKQ tokens=1*" %%A IN (`CSCRIPT "%spool%" -l ^| FIND /I "%%F"`) DO (  
  MOVE /Y "%%B" "%finish%\%%~nxf"
  ECHO %%~nxF>>"%syslog%"
  ECHO %%~nxF>>"%emaillog%"
  IF EXIST "%%~fF" (
   MOVE /Y "%%~fF" "%errorfiles%\%%~nxF"
   ECHO *****ERROR PRINTING FILE***** %%~fF>>"%errlog%"
   ECHO *****ERROR PRINTING FILE***** %%~fF>>"%emailerr%"
  )
 )
)

Перемещение файлов из папки NEW в папку PRINTING. Для каждого файла в папке для печати распечатайте его с помощью foxit, и для каждой записи в команде PRNJOBS.VBS, в которой я нахожу имя файла, переместите файл в папку «конец» и отобразите записи журнала для успеха, а затем, если файл все еще существует в его старом каталоге переместите файл в папку errorfiles и введите в журнал ошибки при печати. ​​

Сценарий завершается без ошибок, но кажется, что в строке 22 сценарий завершается. Я проверяю файлы, и они никогда не перемещаются в каталог% finish%, поэтому он должен быть уничтожен в строке 22.

Если вы отправите файл в очередь печати, запустите

C:\WINDOWS\system32\PRNJOBS.vbs -l

в вашем CMD вы увидите, как эта команда отправляет свой стандартный вывод.

1 Ответ

2 голосов
/ 19 июня 2011

Это может быть причиной проблемы:

MOVE /Y "%%B" "%finish%\%%~nxf"

Это должно быть

MOVE /Y "%%B" "%finish%\<b>%%~nxF</b>"

, поскольку имена переменных цикла чувствительны к регистру, а ваша переменная цикла (кроме %%A)) объявляется как %%F.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...