Batch - Meldung unterdrücken

Diskutiere Batch - Meldung unterdrücken im WinXP - Software Forum im Bereich Windows XP Forum; Guten Abend allerseits! :) Ich hab mir gerade ein kleines Batch-Script erstellt um meine Dateien zwischen PC und Server zu synchronisieren. Das...
F

FrozenFox

Threadstarter
Dabei seit
27.06.2006
Beiträge
12
Guten Abend allerseits! :)

Ich hab mir gerade ein kleines Batch-Script erstellt um meine Dateien zwischen PC und Server zu synchronisieren.

Das Programm ist eigentlich schon fertig und funktioniert genau so wie es soll.

Es gibt allerdings noch einen kleinen "Schönheitsfehler". Ich übeprüfe an einer Stelle ob eine bestimmte Datei existiert (mit exist). Wenn die Datei aber nicht vorhanden ist (kommt oft vor) dann bekomm ich die unschöne Meldung:
Das System kann das angegebene Laufwerk nicht finden.

Meine Frage nun, wie kann ich das unterdrücken, verhinden?

Die verantwortliche Codezeile:
Code:
if exist "%target%\%currentDate%-%maxBackups%.7z" (

Falls die eine Zeile nicht reicht um mein Problem genau zu verstehen, hier der komplette Code:
Code:
:: Dateisyncronisation zwischen Laptop und FH
:: 
:: Version: 1.0
:: Vorraussetzungen: 7 Zip 4.57
::
:: Datum:  06.03.2008   Autor:  FrozenFox    Aktivität: Erstellung

@echo off
color 0a

:: Tagesdatum - Datumsformat JJJJ-MM-TT
set currentDate=%date:~-4%-%date:~-7,2%-%date:~-10,2%
:: Anzahl der aktuellen Tagesbackups
set currentBackup=0
:: maximale Anzahl der möglichen Backups (Übertragungen) pro Tag
set maxBackups=9
:: Pfad zu 7Zip
set zip7=C:\Tools\7-Zip\7z.exe
:: lokaler Dateipfad
set localPath=D:\xxx\
:: FH-Dateipfad
set fhPath=X:\xxx\

:Choose
echo  /----------------------------------------------------------------------------/
echo  / FH-Dateisyncronisation                                    (c) FrozenFox /
echo  /  Version 1.0                                                               /
echo  /  Release Datum: 06.03.2008                                                 /
echo  /----------------------------------------------------------------------------/
echo  / [D]ownload - l„dt die aktuellsten Dateien von der FH herunter              /
echo  / [U]pload   - l„dt die aktuellsten Dateien zur FH hoch                      /
echo  / [E]nde     - beendet das Programm                                          /
echo  /----------------------------------------------------------------------------/
echo.
set /P w= Bitte ausw„hlen: 

if /I "%w%" == "d" goto DOWNLOAD
if /I "%w%" == "u" goto UPLOAD
if /I "%w%" == "e" goto END

cls
goto Choose

:Download
:: Download vorbereiten
set source=%fhPath%
set target=%localPath%
goto CheckIfEmpty

:Upload
:: Upload vorbereiten
set source=%localPath%
set target=%fhPath%
goto CheckIfEmpty

:CheckIfEmpty
:: prüfen ob das Verzeichnis leer ist
if exist "%target%" (
	:: das Verzeichnis ist leer - keine Sicherung nötig
	dir /b /A:-d "%target%">nul 2>nul || goto Copy
)
if exist "%target%" (
	:: das Verzeichnis ist nicht leer - zuerst Sicherung durchführen
	dir /b /A:-d "%target%">nul 2>nul && goto Save
)

:Save
:: prüfen ob noch Backups angelegt werden können
if exist "%target%\%currentDate%-%maxBackups%.7z" (
	echo.
	echo  /----------------------------------------------------------------------------/
    echo  / Die maximale Anzahl an �bertragungen wurde bereits erreicht.               /
    echo  /   - Die �bertragung wurde NICHT DURCHGEF�HRT !! -                          /
	echo  /----------------------------------------------------------------------------/
	echo.
	goto End
) else (
	:: falls es bereits ein oder mehrere Tagesbackup(s) gibt, wird überprüft, welche Nummer 
	:: das neue Backup bekommen soll
	if exist "%target%\%currentDate%-1.7z" (
		for /L %%i in (2 1 %maxBackups%) do (	
			if not exist "%target%\%currentDate%-%%i.7z" (
				:: 7Zip Archiv erstellen - Dateien mit der Endung .7z dabei exkludieren, Schleife dann verlassen
				%zip7% a "%target%\%currentDate%-%%i.7z" "%target%\*" -x!*.7z >nul 2>nul
				set currentBackup=%%i
				goto ZipMessage
			)
		)
	) else (
		:: 7Zip Archiv erstellen - Dateien mit der Endung .7z dabei exkludieren
		%zip7% a "%target%\%currentDate%-1.7z" "%target%\*" -x!*.7z >nul 2>nul
		set currentBackup=1
	)
)

:ZipMessage
echo.
echo  /----------------------------------------------------------------------------/
echo  / Sicherung vor der šbertragung wurde durchgef�hrt.                          /
echo  / maximale Anzahl der Tagessicherungen: %maxBackups%                                    /
echo  / aktuelle Anzahl der Tagessicherungen (%currentDate%): %currentBackup%                       /
echo  /----------------------------------------------------------------------------/

:Copy
:: Daten kopieren
:: .7z-Dateien sollen nicht übertragen werden
set excludeFile=excl.txt
echo .7z > %excludeFile%
:: Ausgabe und / oder Fehlermeldungen von xcopy ins Nirvana schicken
xcopy "%source%" "%target%" /s /i /q /h /y /exclude:%excludeFile% >nul 2>nul
:: Hilfsdatei wieder löschen
del %excludeFile%

echo.
echo  /----------------------------------------------------------------------------/
echo  / Daten wurden erfolgreich �bertragen.                                       /
echo  /----------------------------------------------------------------------------/
echo.

:End
echo.
echo  Dr�cken Sie eine beliebige Taste zum Beenden des Programms.
:: Ausgabe von pause ins Nirvana schicken
pause >nul

Vielen Dank im Vorraus für jede Hilfe!
 
automatthias

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
12.036
Für mich sieht die Fehlermeldung eher so aus, dass es Probleme mit localPath oder fhPath gibt, es liegt also nicht an der Datei.
Ansonsten kannst Du höchstens versuchen, die Ausgaben nach NUL umzuleiiten, wie Du es ja auch am Schluss tust. Aber die Umleitung nach NUL funktioniert nur bedingt (es gibt ja verschiedene Ausgabekanäle)
 
F

FrozenFox

Threadstarter
Dabei seit
27.06.2006
Beiträge
12
Hab es nun lösen können. :)
Das Problem waren diese 2 Kommentar-Zeilen:
Code:
:: falls es bereits ein oder mehrere Tagesbackup(s) gibt, wird überprüft, welche Nummer 
:: das neue Backup bekommen soll

Wenn man die auf 1 Zeile reduziert funktioniert alles ohne der blöden Fehlermeldung.

Weiß jemand zufällig warum das so ist?
 
automatthias

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
12.036
Vielleicht hängt es damit zusammen, dass der : ja eigentlich für Sprungmarken und am Zeilenanfang (sprich Spalte 1) gedacht ist und nicht für Kommentare (REM). _Vielleicht_ wird dann "Leerstelle:: " als Laufwerk interpretiert.
Du könntest höchstens mal ohne "echo off" und einigen eingebauten pausen bzw. zusätzlichen echos versuchen, den Skript zu debuggen (oder gab das 'ne Option, die die Batchfiles immer nur zeilenweise ausführt?), um zu sehen, was da passiert.
Oder die () im Kommentar stören, und er versucht dann irgendwie auf Laufwerk s: zuzugreifen.
Wie gesagt, nur Vermutungen.
 
Bullayer

Bullayer

Schwergewicht
Dabei seit
19.07.2006
Beiträge
24.171
Ort
DE-RLP-COC
Häng mal ein >NUL hinter den EXIST Befehl, dann sollte die Fehlermeldung ins Nirvana verschwinden.
 
F

FrozenFox

Threadstarter
Dabei seit
27.06.2006
Beiträge
12
Hab ich schon versucht, hab das sogar testweise mal hinter jede einzelne Anweisung gestellt, aber ohne Erfolg.

Mittlerweile halte ich das für einen kleinen Batch-Bug wenn man Kommentare hinter ) else ( hängt.
 
Thema:

Batch - Meldung unterdrücken

Batch - Meldung unterdrücken - Ähnliche Themen

Einzelnen Ordner verschieben per Batch-Datei: Hallo, ich habe eine Frage zu den verschieben von Ordnern mithilfe einer Batch-Datei. Sprich ich will z.B., dass in einem Ordner, wo mehrere...
Was ist FUB.bat und FUB_Send.bat: Hallo Community, bei mir blitzt immer wieder unter Windows 10 64 Bit ein Command Window auf, das aber so schnell verschwindet, dass man es nicht...
.Net Framerwork 3.5 unter Windows 10 installieren: Hallo zusammen, ich habe einige Probleme damit .Net Framework 3.5 unter W10 zu installieren. Ich erhalte jedes mal den Fehler 0x800F0817...
Manueller Aufruf über die Befehlszeile \\"COMPUTER": Sorry, aber wie funktioniert den der manuelle Aufruf über die Befehlszeile \"COMPUTER" ??? Finde nur untenstehende Befehle ... ASSOC...
[Win10 Pro 14393.693 64 Bit] Windows Update - Kumulative Updates werden nicht mehr heruntergeladen: Hallo zusammen, bei mir werden kumulative Updates nicht mehr heruntergeladen. Entweder bleibt es bei 0% oder bei 95%. TiWorker.exe rödelt sich...
Oben