it-swarm.com.de

Batch-Dateiergebnisse in eine Textdatei drucken

Ich habe eine einfache Batchdatei erstellt, um eine Reihe von Dateien/Ordnern neu zu organisieren. Es funktioniert so, wie es sollte, aber ich muss die Ergebnisse in eine Protokolldatei drucken. Ich muss die Ergebnisse jeder Aktion ausgeben (Erstellen eines Verzeichnisses, Verschieben einer Datei, Umbenennen/Löschen einer Datei). Wenn ich command >> results.txt verwende, kann ich nur "1 Datei (en) verschoben" bekommen. eine Tonne mal. Hier ist der Code:

FOR %%a IN (C:\scans\*.txt) DO CALL :read %%~na
TREE /f >> tree.txt
@GOTO :EOF

:read
@set FILE=%1
FOR /f "tokens=1,2" %%b IN (%FILE%.txt) DO CALL :makeDir %%b %%c
@GOTO :EOF

:makeDir
@set ACCOUNT=%1
@set CHECK=%2
mkdir %ACCOUNT%
CALL :move
@GOTO :EOF

:move
MOVE %FILE%.gif %ACCOUNT%
REN %ACCOUNT%\%FILE%.gif %CHECK%.gif
DEL %FILE%.txt
@GOTO :EOF

Wie kann ich in die Protokolldatei (results.txt) drucken, wenn eine Aktion ausgeführt wird?

BEARBEITEN: neuer Code mit Echos:

@echo off
FOR %%a IN (C:\scans\*.txt) DO CALL :read %%~na
TREE /f >> tree.txt
@GOTO :EOF

:read
@set FILE=%1
FOR /f "tokens=1,2" %%b IN (%FILE%.txt) DO CALL :makeDir %%b %%c
@GOTO :EOF

:makeDir
@set ACCOUNT=%1
@set CHECK=%2
mkdir %ACCOUNT%
@echo Made directory for %ACCOUNT% >> results.txt
CALL :move
@GOTO :EOF

:move
MOVE %FILE%.gif %ACCOUNT%
@echo %FILE% moved to %ACCOUNT%
REN %ACCOUNT%\%FILE%.gif %CHECK%.gif
@echo %ACCOUNT%\%FILE% renamed %CHECK% >> results.txt
DEL %FILE%.txt
@echo %FILE% deleted. >> results.txt
@GOTO :EOF
17
Chris V.

Sie können diesen Code oben in Ihre Batchdatei einfügen:

@Echo off
SET LOGFILE=MyLogFile.log
call :Logit >> %LOGFILE% 
exit /b 0

:Logit
:: The rest of your code
:: ....

Sie leitet die Ausgabe der :Logit-Methode grundsätzlich auf die LOGFILE um. Der Befehl exit soll sicherstellen, dass der Stapel nach der Ausführung von :Logit beendet wird.

19
Radix

Es gibt nichts Falsches bei der Umleitung des Standards in eine Datei. Die Befehle Move und mkdir geben nichts aus. Wenn Sie wirklich eine Protokollspur dieser Befehle benötigen, müssen Sie explizit den Standard anzeigen, um anzuzeigen, was Sie gerade ausgeführt haben.

Die Batchdatei, Beispiel:

@ECHO OFF
cd bob
ECHO I just did this: cd bob

Führen Sie von der Befehlszeile aus:

myfile.bat >> out.txt

oder

myfile.bat > out.txt
15
Stealth Rabbi

Für Ergebnis in Textdatei drucken 

wir können folgen 

echo "test data" > test.txt

Dadurch wird eine test.txt-Datei erstellt und "Testdaten" geschrieben.

Wenn Sie dann anhängen möchten 

echo "test data" >> test.txt
6
Nikunj K.

Schritt 1: Fügen Sie einfach den erforderlichen Code in eine "MAIN.BAT" -Datei ein.

Schritt 2: Erstellen Sie eine weitere Bat-Datei, beispielsweise MainCaller.bat, und kopieren Sie diese drei Codezeilen:

REM THE MAIN FILE WILL BE CALLED FROM HERE..........
CD "File_Path_Where_Main.bat_is_located"
MAIN.BAT > log.txt

Schritt 3: Doppelklicken Sie einfach auf "MainCaller.bat".

Alle Ausgaben werden in der Textdatei mit dem Namen "log" protokolliert.

Um das Ergebnis einer Batchdatei in einer Textdatei anzuzeigen, können Sie verwenden

dieser Befehl

chdir > test.txt

Dieser Befehl leitet das Ergebnis an test.txt weiter.

Wenn Sie test.txt öffnen, finden Sie den aktuellen Pfad des Verzeichnisses in test.txt

3
Nikunj K.

Haben Sie versucht, DEL% FILE% .txt% nach @echo% FILE% zu verschieben. >> ergebnis.txt damit es so aussieht?

@echo %FILE% deleted. >> results.txt
DEL %FILE%.txt
0
JohnBatch