Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit Batchdatei auslesen ob eine bestimmte Datei existiert

Frage Entwicklung Batch & Shell

Mitglied: KeiosID

KeiosID (Level 1) - Jetzt verbinden

02.12.2008, aktualisiert 18.12.2008, 7878 Aufrufe, 7 Kommentare

Hallo,

ich hoffe mal, das ist mit einer Batchdatei möglich.

Ich habe ein Programm, dass mir eine große Anzahl an .jpgs erzeugt, die ich für den Druck benötige. Da ich hier einige Dateien habe , bei denen ich über 130.000 Bilder erzeuge,
muss ich mit dem Druck warten, bis das letzte Bild erzeugt ist, das dauert mit allem Drum und dran bis zu 50 Min.

Meine Idee:
Ich kann mit meinem Programm eine Batchdatei erzeugen und auch aufrufen.
Ist es möglich, eine Batchdatei so zu programmieren, dass ich Ihr den Namen der letzten Bilddatei mitgebe, und diese
dann solange ein bestimmtes Verzeichnis überwacht, bis diese Datei vorhanden ist.
Ich denke da an eine FileExist Lösung.
Wenn diese Bedingung erfüllt ist, soll die Batchdatei noch eine bestimmte Datei von einem Verzeichnis in ein weiteres Verzeichnis verschieben.

War das jetzt verständlich?

Ich setze mich eigentlich sehr wenig mit Programmierung auseinander, aber manchmal komm ich nicht drumherum.
Von daher wäre eine DAU sichere Erklärung spitze.

Danke

Grüße

KEIOS
Mitglied: Iwan
02.12.2008 um 10:43 Uhr
hallo,

DAU-sicher? sowas gibt es nicht, wie ich in meiner langjährigen Erfahrung feststellen musste

Aufruf der Batch mit: batch.bat DATEINAME
01.
set DATEINAME=%1 
02.
REM hier fängt der Spass an 
03.
:Start 
04.
REM existiert die Datei, macht er weiter 
05.
if exist %DATEINAME% goto WEITER 
06.
goto PAUSE 
07.
 
08.
REM 3 Sekunden Pause, bevor er nochmal guckt, ob die Datei existiert 
09.
:PAUSE 
10.
ping localhost -n 3 
11.
goto Start 
12.
 
13.
:WEITER 
14.
DeineWeiterenBefehle...
ist erstmal ungetestet, aber zumindest ein Ansatz
Bitte warten ..
Mitglied: Ren
02.12.2008 um 11:04 Uhr
damit das ganze noch funktioniert, wenn im Verzeichnis oder in dem Dateinamen ein Leerzeichen vorkommt:
01.
set "DATEINAME=%~1" 
02.
 
03.
:Start 
04.
REM existiert die Datei, macht er weiter 
05.
if exist "%DATEINAME%" goto WEITER 
06.
goto PAUSE 
07.
 
08.
REM 3 Sekunden Pause, bevor er nochmal guckt, ob die Datei existiert 
09.
:PAUSE 
10.
ping localhost -n 3 >nul 
11.
goto Start 
12.
 
13.
:WEITER 
14.
DeineWeiterenBefehle...
In Zeile 5 besteht noch das Problem, dass das Programm theoretisch auch dann weiter macht, wenn gar keine Datei %DATEINAME%, sondern nur ein Verzeichnis mit diesem Namen existiert. Also vielleicht noch prüfen, ob es ein Verzeichnis ist, oder wirklich die Datei:
01.
if exist "%DATEINAME%" if not exist "%DATEINAME%\*.*" goto WEITER  
02.
if exist "%DATEINAME%\*.*" echo Es existiert ein Verzeichnis mit dem Namen "%DATEINAME%". So ist es nicht möglich, eine Datei mit dem selben Namen zu speichern. Abbruch. & goto :eof
auch ich habe es nicht getestet...
Gruß
Bitte warten ..
Mitglied: 60730
02.12.2008 um 11:33 Uhr
Servus,

damit das ganze noch funktioniert, wenn im Verzeichnis oder in dem Dateinamen ein Leerzeichen vorkommt:

kann so nicht funktionieren ;-(

Denn dann (leerzeichen) müsste die Abfrage ja lauten:

01.
if not %2 =="" echo "Leerzeichen gefunden" && if exist "%1 %2">nul goto weiter
auch ungetestet - und wenn mehrere Leerzeichen drin sein sollten %3 usw.
Gruß
Bitte warten ..
Mitglied: Ren
02.12.2008 um 11:45 Uhr
richtig, die Leerzeichen wieder vergessen. Ich habe meinen Beitrag noch einmal korrigiert. Zu starten wäre die Batch so:
01.
batch.bat "X:\Pfad der Datei\DATEI NAME.JPG"
Das %~1 entfernt die umschließenden Anführungszeichen dann wieder, falls sie gesetzt wurden, Dateiname wäre dann also: X:\Pfad der Datei\DATEI NAME.JPG. Damit die überprüfung klappt, baue ich sie dann wieder drum herum, in der Abfrage. if exist "X:\Pfad der Datei\DATEI NAME.JPG". Dabei wird alles zwischen dem ersten und zweiten " als ein Argument betrachtet.
Gruß
Bitte warten ..
Mitglied: TheUntouchable
02.12.2008 um 12:03 Uhr
So hab das ganze nun noch ein wenig aufgebohrt :P Obs gebraucht wird oder nicht weis ich nicht, mir war nur langweilig ;)

01.
@echo off 
02.
 
03.
:: Überprüfe ob ein Aufrufparameter mitgegeben worden ist 
04.
:: Wenn nein = Beende Batch 
05.
IF "%~1"=="" ECHO Kein Aufrufparameter! && pause >nul && EXIT 
06.
 
07.
set "DATEI=%~1" 
08.
set STARTZEIT=%time:~0,8% 
09.
::Startzeit wird in Sekunden umgewandelt damit man rechnen kann 
10.
for /f "delims=:, tokens=1-3" %%i in ("%time%") do Set /a TStart=%%i*3600+%%j*60+%%k  
11.
 
12.
:PRUEFUNG 
13.
CLS 
14.
ECHO. 
15.
ECHO Die zu ueberpruefende Datei lautet: 
16.
ECHO "%DATEI%" 
17.
ECHO. 
18.
ECHO Ueberpruefung um %STARTZEIT% gestartet.. 
19.
ECHO. 
20.
ECHO Status: 
21.
::Ueberpruefe ob Datei vorhanden, wenn ja wird 3 mal ein Piepton ausgegeben 
22.
IF EXIST "%DATEI%" ECHO %time:~0,8% Datei ist vorhanden!  && pause >nul && EXIT 
23.
::Wenn nein, wird 3 mal der localhost gepingt und von vorne geprueft 
24.
::Endzeit wird in Sekunden umgewandelt damit man rechnen kann 
25.
for /f "delims=:, tokens=1-3" %%i in ("%time%") do Set /a TEnde=%%i*3600+%%j*60+%%k 
26.
::Dauer wird ausgerechnet und in den Titel geschrieben 
27.
Set /a TDauer=TEnde-TStart 
28.
title Suchdauer: %TDauer% s 
29.
ECHO %time:~0,8% Datei nicht gefunden.. && ping localhost -n 3 >nul && GOTO :PRUEFUNG
Wie schon oben erwähnt muss hier das ganze mit ->batchname.bat "Image Name.Endung"<- aufgerufen werden

Leider funktioniert die verstrichene Zeit Anzeige nicht richtig, vielleicht kann sich das noch wer anschaun ;)

Ach ja, hier kann man auch gut erkennen das 3 Pings nur 2 Sek sind :P
Bitte warten ..
Mitglied: KeiosID
02.12.2008 um 13:49 Uhr
Also bisher schon mal vielen Dank für den Input.

Bin schon fleißig am bastln und testen, kann auch schon die ersten Erfolge verzeichnen.

Wennd das Ding fertig ist, werde ich es posten und versuchen zu kommentieren.

Dank und Grüße

Keios
Bitte warten ..
Mitglied: KeiosID
18.12.2008 um 12:50 Uhr
So, es funktioniert und hier noch der versprochene Code...

Verbesserungen werden vom BatchNoob gerne angenommen



"C:\Program Files\TEC-IT\BCStudio9\Bin\bcstudio.exe" -datalist="C:\Streamserve\Datamatrix\sequenz_AboOut00_V_AH_2009-1_ohne_TEST_KLEIN_DM.txt " -outlist="C:\Streamserve\Datamatrix\outlist_AboOut00_V_AH_2009-1_ohne_TEST_KLEIN_DM.txt " -s="c:\streamserve\datamatrix\Matrix.bc" -w=22000 -h=22000
set DATEINAME=C:\Streamserve\Datamatrix\codes\190019039784TESTKZ.bmp

:Start
if exist "%DATEINAME%" goto WEITER if not exist "%DATEINAME%" goto Next
:Next
ping localhost -n 3 >nul
goto Start
:WEITER
move C:\Streamserve\Datamatrix\Versand\AboOut00_V_AH_2009-1_ohne_TEST_KLEIN_DMC*.txt C:\Streamserve\Print\Adware\Versandunterlagen\
exit
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchdatei zum kopieren bestimmter Dateien in ein bestimmtes Unterverzeichnis
gelöst Frage von imebroBatch & Shell8 Kommentare

Guten Tag, ich habe ein Hauptverzeichnis (HV), in dem 250 Unterverzeichnisse mit unterschiedlichen Namen liegen. Manche dieser 250 Unterverzeichnisse ...

Batch & Shell
Batchdatei: Datei nach bestimmten Zeilen durchsuchen und in anderer Datei einfügen
Frage von Vit1985Batch & Shell1 Kommentar

Hallo, ich möchte mit einem batch aus einer *.msg Datei 4 Zeilen heraussuchen und diese Zeilen sollen dann in ...

VB for Applications
Abfrage, ob Datei mit Variablem Wert existiert
gelöst Frage von AnrionVB for Applications12 Kommentare

Hallo Forum, Ich habe diesen Code: Jedoch funktioniert er nicht ganz wie er soll (bzw. gar nicht). Es soll ...

Windows 7
Aufgabe, die wenn eine Datei existiert, ein Programm öffnet.
gelöst Frage von citroendsvierWindows 73 Kommentare

Ich versuche, eine Aufgabe zu erstellen, die, wenn in einem bestimmten Ordner eine Datei mit bestimmtem Namen ist, ein ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 4 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 8 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 8 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 12 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...