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-ID: 178112

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

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

Biber
Biber 27.12.2011 um 13:05:37 Uhr
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
pbelcl
pbelcl 27.12.2011 um 14:04:00 Uhr
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 ?!
bastla
bastla 27.12.2011 um 14:08:03 Uhr
Goto Top
Hallo pbelcl!

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

Grüße
bastla
pbelcl
pbelcl 28.12.2011 um 16:14:02 Uhr
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!!!!