pbelcl
Goto Top

VOL in Variable

Name der Festplatte über Variable in LOG schreiben

Hi Leute,

Ich habe mir ein automatisches Sicherungs BATCH geschrieben, welches auf viele unterschiedliche Sicherungsplatten diverse Ordner mit Robocopy sichert.
Nur fehlt mir noch eine Kleinigkeit um es perfekt zu machen.

Ich will eine Logdatei erstellen, die den Volume Namen der Zielplatte hat und dort einige Dinge, wie zum Beispiel das SIcherungsdatum, reinschreiben.
Nun habe ich mit VOL herumexperimentiert, aber der schreibt mehrere Zeilen text heraus und der Name der Platte ist irgendwo mitten im Text!

Habe ihr einen Tipp für mich wie ich über Batch den Volumnamen (ohne irgenwelche Zusätze) in eine Variable bekomme ??

Content-Key: 178112

Url: https://administrator.de/contentid/178112

Printed on: April 23, 2024 at 07:04 o'clock

Member: Biber
Biber Dec 27, 2011 at 12:05:37 (UTC)
Goto Top
Moin pbelcl,

du kannst mit "Findstr" die Ausgabe auf die für dich relevante Zeile reduzieren und die Zeile wiederum mit einer FOR/F-Anweisung auf das entscheidende Wort.

Beispiel am CMD-Prompt
>for /f "tokens=5*" %i in ('vol j: ^|findstr "Laufwerk"') do @echo %j
keine Bezeichnung.

(=13:01:36  d:\Biber\temp=)
>for /f "tokens=5*" %i in ('vol d: ^|findstr "Laufwerk"') do @echo %j
DATA

Um die Volumebezeichnung in eine Variable zu speichern müsstest du statt "echo %j" etwas in der Art verwenden:
for /f "tokens=5*" %i in ('vol d: ^|findstr "Laufwerk"') do @set "Volbez=%j"

Grüße
Biber
Member: pbelcl
pbelcl Dec 27, 2011 at 13:04:00 (UTC)
Goto Top
Hallo Biber,

Danke für deine Zeilen!

Wenn ich :

 
for /f "tokens=5*" %i in ('vol p: ^|findstr "Laufwerk"') do @echo %j   
in eine Batch datei kopiere und starte, dann kommt die Fehlermeldung:

"|findstr" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Habs eigentlich nur mit Copy und Paste reinkopiert und den Laufwerksbuchstaben angepasst!
Mach ich da was falsch ?!
Member: bastla
bastla Dec 27, 2011 at 13:08:03 (UTC)
Goto Top
Hallo pbelcl!

In einem Batch immer "%%i" anstatt "%i" (und analog "%%j") ...

Grüße
bastla
Member: pbelcl
pbelcl Dec 28, 2011 at 15:14:02 (UTC)
Goto Top
SO:
 
for /f "tokens=5*" %%i in ('vol %Z_LW% ^|findstr "Laufwerk"') do @set "Volbez=%%j"  
hat es in meinem Batch funktioniert.

DANKE für eure Hilfe!!!!