Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Errormeldung und Ausgabe in Log-Datei

Frage Entwicklung Batch & Shell

Mitglied: 26741

26741 (Level 1)

11.03.2006, aktualisiert 20.03.2006, 7961 Aufrufe, 6 Kommentare

Hallo,

ich habe ein Batch-Script geschrieben, welches in der Firma automatisiert Dateien backuppen und sortieren soll.

Ich möchte aber gerne keine Ausgaben und Fehler auf der Konsole angezeigt haben. Bisher habe ich es nur geschafft, entweder die Fehler oder die Ausgaben zu unterdrücken bzw. in eine Logdatei zu schreiben.

Hier das Stück Code:
ECHO.
ECHO Verschiebe XY-Daten
MOVE "%path_xydata%\*.%xy_filetype%" "%save_path%\%save_xydata%"
2>> %save_path%\%logfile% || ECHO Eintraege im Logfile vorhanden
ECHO
>> %save_path%\%logfile%
ECHO -----DONE-----

Wie kann ich jetzt von dem MOVE auch noch die verschobenen Dateien ins Logfile verschieben, nicht nur Fehlermeldungen??

In diesem Beitrag ist das Problem ebenfalls angeschnitten und auch keine richtige Lösung, nur Workarounds gefunden worden: http://www.administrator.de/Batchdatei_-_Logschreiben_aber_trotzdem_Tex ...

Ich danke schonmal für jeden Tipp!!


Johannes
Mitglied: maneich
11.03.2006 um 17:15 Uhr
Hallo,

also zunächst mal, wenn du hinter/unter dem echo keine pause machst, kannst du das ja überhauptnicht lesen, da so diese Zeile zwar angezeigt wird aber in Millisekunden wieder verschwindet.

Also wenn du das auch lesen möchtest dann z.B. mit

for %%e in (echo pause) do %%e Verschiebe XY-Daten

Aber nun zum eigentlichen Problem.

Du hast Dateien im Verzeichnis %a% liegen und willst diese nach Verzeichnis %b% verschieben. Außerdem soll kein prompt angezeigt werden, sondern dieser soll in eine Log-Datei geschrieben werden. Außerdem sollen die verschobenen Dateien auch noch ins Logfile geschrieben werden. Ist das soweit richtig?

Nun, die Ausgabe vom Move ist doch
Verzeichnis\Datei => Verzeichnis [OK] wenn alles gut gelaufen ist und z.B.
%adresse%\dateixyz.txt kann nicht verschoben werden - Datei oder Verzeichnis nicht vorhanden
oder eine andere Fehlermeldung wenn ein Fehler aufgetreten ist

Außerdem gibt Move einen Errorlevel zurück
0 wenn OK und
größer 0 meist 1 wenn nicht OK

Somit hast du 2 Möglichkeiten zu bestimmen was ohne prompt passieren soll

1. move %a%\datei.txt %b%>nul
damit wird die Ausgabe ins nichts geleitet, man kann aber trotzdem über über die Abfrage

If errorlevel 1 (bedeutet errorlevel >= 1)

feststellen ob fehlerfrei oder nicht und das auch in eine Datei schreiben.

2. move %a%\datei.txt %b%>>logfile.txt
Damit steht, wie oben bereits ausgeführt der Vorgang in der Logfile und zwar egal ob verschieben OK oder nicht OK

Willst Du das gesamte Verzeichnis verschieben, geht das am einfachsten mit:

for /f "tokens=*" %%e in ('dir /s /b %a%') do move %%e %b%>>logfile.txt

damit steht auch jede einzelne Datei in Verzeichnis %a% in der Logfile, ob kopiert oder nicht.

In %a% und %b% stehen natürlich die Verzeichnisadressen von und nach.

MfG maneich
Bitte warten ..
Mitglied: 26741
11.03.2006 um 17:33 Uhr
hi,

also zunächst mal, wenn du hinter/unter
dem echo keine pause machst, kannst du das ja
überhauptnicht lesen, da so diese Zeile
zwar angezeigt wird aber in Millisekunden
wieder verschwindet.

keine Panik, das Script ist ja noch viel länger und hat mehr Funktionen. War nur ein Auszug daraus... ;)

for %%e in (echo pause) do %%e Verschiebe
XY-Daten

ich habe mich in den letzten Tagen in Batch-Programmierung mal wieder bisschen aufgefrischt und nachgelesen.
Ich frage mich aber, warum sämtliche Sachen mit for-Schleifen gelöst werden, die IMHO viel einfacher auch anders gelöst werden könnten...

Du hast Dateien im Verzeichnis %a% liegen
und willst diese nach Verzeichnis %b%
verschieben. Außerdem soll kein prompt
angezeigt werden, sondern dieser soll in eine
Log-Datei geschrieben werden. Außerdem
sollen die verschobenen Dateien auch noch
ins Logfile geschrieben werden. Ist das
soweit richtig?

richtig. Mein Script funktioniert auch einwandfrei.
Ich möchte nur die Ausgabe
Datei XY
Datei YY
Datei YX
"X Dateien verschoben"
sowie die Ausgabe "datei xyz kann nicht verschoben werden/existiert nicht/existiert schon" ins Logfile schreiben.
Also sowohl die Statusmeldungen, wie auch die Fehlermeldungen.

If errorlevel 1 (bedeutet errorlevel >=
1)
feststellen ob fehlerfrei oder nicht und das
auch in eine Datei schreiben.

bringt aber nix, da ich die Fehlermeldung nit mehr auslesen kann.

2. move %a%\datei.txt
%b%>>logfile.txt
Damit steht, wie oben bereits
ausgeführt der Vorgang in der Logfile
und zwar egal ob verschieben OK oder nicht
OK

das geht nit. Wenn ich es als 2>> pipe, sind nur Fehlermeldungen im Logfile. Wenn ich >> ohne Errorlevel verwende, sind nur Statusmeldungen im Logfile.

Willst Du das gesamte Verzeichnis
verschieben, geht das am einfachsten mit:
for /f "tokens=*" %%e in ('dir /s
/b %a%') do move %%e %b%>>logfile.txt

wieder so ein Beispiel. Vielleicht kannst du ja mal begründen, warum eine for-Schleife hier sinnvoller ist, wie das verzeichnis einfach nur mit move zu verschieben...
Vielleicht kannst du mir auch kurz die Funktion der Schleife erklären, vielleicht verstehe ich dann den Hintergrund...
In meinem Fall will ich aber nur die Files aus dem Verzeichnis verschieben.

Danke dir schonmal!


Johannes
Bitte warten ..
Mitglied: Schirrmeister
11.03.2006 um 18:35 Uhr
Du kannst die Fehlerausgabe in den normalen Ausgabestrom umleiten, und diesen dann in die Datei (oder umgekehrt).
Das Umleiten sieht dann etwa so aus:
01.
>> datei.txt 2>&1
Bitte warten ..
Mitglied: 26741
11.03.2006 um 18:47 Uhr
hi,

es funktioniert!

Werde es jetzt mal ausführlich testen, schätze aber, dass das war, was ich gesucht hab.

ciao


Johannes
Bitte warten ..
Mitglied: 18133
12.03.2006 um 18:13 Uhr
hi,

mal mir dir > datei.log probiert ?

Gruß
Bitte warten ..
Mitglied: 26741
20.03.2006 um 14:00 Uhr
also hier nochmal die korrekte Lösung:

MOVE "%path_xydata%\*.%xy_filetype%" "%save_path%\%save_xydata%"
%save_path%\%logfile% 2>&1

oder ein einfaches Beispiel:

ECHO Dieser Text kommt in die Date >> datei.txt 2>&1
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst CMD ausgabe in log schreiben (9)

Frage von medikopter zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Funktion Ausgabe in Datei (2)

Frage von schicksal zum Thema Batch & Shell ...

Windows Server
Powershell - suche nach gelöschter Datei aus LOG (15)

Frage von krischeu zum Thema Windows Server ...

Batch & Shell
gelöst RoboCopy Log Fehler? (14)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...