windows - Udskriv anmodning om ny fil i mappe

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har fået følgende problem:


Jeg skal lave noget, der kontrollerer for at se, om en fil er blevet tilføjet til en bestemt mappe, så skal denne fil udskrives. Jeg har hørt, at Windows måske har noget lignende indbygget?


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


Jeg har fundet løsninger, men du skal betale for dem.


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"


Eventuelle tips eller hjælp er velkomne!

Bedste reference


Denne batchfil kontrollerer om filen printme.jpg eksisterer hvert 60 sekund. Hvis det eksisterer, vil det bruge det indbyggede MSPAINT-program til at udskrive det. Du er velkommen til at konfigurere SECONDS og FILENAME for at passe til dit miljø.


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


Yderligere mods, du måske vil gøre:



  1. Hvis du bruger en ældre version af Windows som XP, har du måske ikke kommandoen CHOICE. I så fald skal du bruge ping til at simulere sovende: PING 1.1.1.1 -n 1 -w 60000 >NUL

  2. Du kan tilføje en linje for at slette filen, efter at den er udskrevet: DEL /Q \%FILENAME\%



REDIGER (Nedenfor): Tilføjet multifil, flyt og slet evnen


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

Andre referencer 1


Kør et VB.Net i baggrunden, og brug en FileSystemWatcher til at få arrangementer for hver ændring i den mappe. Når du modtager en begivenhed, skal du kontrollere filen/handlingen og udskrive filen ved hjælp af uanset App, der kan udskrive dem. En Batch-fil vil sandsynligvis ikke fungere her. [7]