Batch - Befehl einer Variable zuweisen

frey

Ensign
Dabei seit
Juni 2002
Beiträge
232
Hallo,

ich habe ein Problem bei der Batch-Programmierung.
Zuersteinmal der Quallcode...

@echo off
cls
dir c:\test /s /b|find "test.txt"

wenn ich die batch bis hierhin ausführe, bekomme ich, "verschuldet" durch die letze zeile den pfad der mittels "find" gefundenen Datei ausgegeben. diesen pfad will ich in eine variable schreiben um ihn weiterverarbeiten zu können...doch wie mach ich das genau?
 

.mojo

Fleet Admiral
Dabei seit
Nov. 2004
Beiträge
13.023
Was heisst den Variable? Quasi ein String für zb. C++ Programmierung? Ansonste mach mal:
dir c:\test /s /b|find "test.txt" > variable.txt
Sollte si funktionieren.
Anbei: So kann mann auch das dir Ergebniss direkt ausdrucken: hinter dem > einfach LPT1. (Geht natürlich nur, wenn der Drucker an LPT1 angeschlossen ist, oder LPT auf ne IP umgeleitet ist...)
 

frow

Lt. Commander
Dabei seit
Nov. 2004
Beiträge
1.400
Ich würde dir da eher Windows Scripting Host per VB oder JS empfehlen. Batch ist zu primitiv. :)

Sonst kannst du dir das mal angucken.
 

PCB

Lt. Commander
Dabei seit
Dez. 2001
Beiträge
1.691
Batch-Programmierung ist nicht primitiv, man muss sich nur ein bisschen damit beschäftigen, dann klappts auch mit dem Nachbarn, Ihr Experten ;)

Also, so deklarierst du die Variable mit dem Ergebnis des finds:

dir c:\ /s /b|find "test.txt" >C:\Ergebnis.txt
FOR /F "eol= tokens=1" %%i in (C:\Ergebnis.txt) do set VARIABLE=%%i

Wenn die test.txt allerdings mehrfach vorhanden ist, wird die zuletzt gefundene in die Variable geschrieben, irgendwie logisch oder ? :D

justmy2cents

PCB
 

.mojo

Fleet Admiral
Dabei seit
Nov. 2004
Beiträge
13.023
Zitat von PCB:
Batch-Programmierung ist nicht primitiv, man muss sich nur ein bisschen damit beschäftigen, dann klappts auch mit dem Nachbarn, Ihr Experten ;)
Wieso ihrExperten? Ich hab nicht gesagt, dass es primitv is. Ich find batch goil!

Zitat von PCB:
dir c:\ /s /b|find "test.txt" >C:\Ergebnis.txt
FOR /F "eol= tokens=1" %%i in (C:\Ergebnis.txt) do set VARIABLE=%%i


kannst du mir mal die Zeile erklären?
FOR /F "eol= tokens=1" %%i in (C:\Ergebnis.txt) do set VARIABLE=%%i
 
Top