Распечатать запрос на новый файл в папке - PullRequest
0 голосов
/ 02 мая 2011

У меня следующая проблема:

Мне нужно сделать что-то, что проверяет, был ли файл добавлен в определенную папку, если этот файл нужно распечатать. Я слышал, что в Windows может быть что-то подобное встроено?

*Program constantly checks whether a file has been added*
File has been added 
File gets printed immediately

Я нашел решения, но за них нужно платить.

UPDATE

"Code supplied by Vik"
:start
set SECONDS=60
SET FILENAME=*.jpg
IF EXIST %FILENAME% MSPAINT /p %FILENAME%
choice /C a /T %SECONDS% /D a
DEL /Q %FILENAME%
goto :start
"Edits: COPY *.JPG file to a different folder (E.G. ImageHistory)"
"Edits: DELETE local *.JPG file leaving the monitor folder empty"

Любые советы или помощь приветствуются!

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Этот пакетный файл будет проверять, существует ли файл printme.jpg каждые 60 секунд. Если он существует, он будет использовать встроенную программу MSPAINT для его печати. Не стесняйтесь настраивать SECONDS и FILENAME в соответствии с вашей средой.

:start
set SECONDS=60
SET FILENAME=printme.jpg
IF EXIST %FILENAME% MSPAINT /p %FILENAME%
choice /C a /T %SECONDS% /D a
goto :start

Дополнительные моды, которые вы можете сделать:

  1. Если вы используете более старую версию Windows, такую ​​как XP, у вас может не быть команды CHOICE. В этом случае используйте ping для имитации сна: PING 1.1.1.1 -n 1 -w 60000 >NUL
  2. Вы можете добавить строку для удаления файла после его печати: DEL /Q %FILENAME%

РЕДАКТИРОВАНИЕ (ниже): добавлена ​​возможность многофайлового перемещения и удаления

set SECONDS=20
set FILEFOLDER=C:\dropfolder
set TEMPFOLDER=%FILEFOLDER%\TEMPFOLDER
set FILEWILDCARD=*.jpg

if not exist "%FILEFOLDER%" ECHO %FILEFOLDER% NOT FOUND ... CTRL-C TO EXIT && PAUSE
if not exist "%TEMPFOLDER%" ECHO %TEMPFOLDER% NOT FOUND ... CTRL-C TO EXIT && PAUSE

:start
cd "%FILEFOLDER%"
dir /b "%FILEWILDCARD%" > filelist.txt
for %%A in (filelist.txt) do if not %%~zA==0 goto printfiles
choice /C a /T %SECONDS% /D a
goto :start

:printfiles
echo FILE(s) FOUND!
del /q "%TEMPFOLDER%\%FILEWILDCARD%"
move "%FILEWILDCARD%" "%TEMPFOLDER%"
cd "%TEMPFOLDER%"
for %%A in ("%FILEWILDCARD%") do MSPAINT /p "%%A"
goto :start
1 голос
/ 02 мая 2011

Запустите VB.Net в фоновом режиме и используйте FileSystemWatcher , чтобы получить события для каждого изменения в этой папке.Получив событие, проверьте файл / действие и распечатайте файл, используя любое приложение, которое может их распечатать.Пакетный файл, скорее всего, не будет работать здесь.

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