Teil-Ausgabe eines Befehls einen 2ten Befehl übergeben
Hallo zusammen,
ich wollte mir 'ne kleinen Batchdatei zusammenbauen die ein iSCSI Laufwerk mountet. Ich nachträglich auch sich von iSCSI Target abmelden. Das geht mit einer sich ändernden Session Id.
iscsicli qlogintarget <Session Id - die ich bräuchte>
1.) Mit folgenden Befehl bekomme ich die SessionID. (hinter den Doppelpunkt ist noch ein Leerzeichen!)
iscsicli reporttargetmappings
Microsoft iSCSI Initiator version 2.0 Build 3825
Total of 1 mappings returned
Session Id : fffffadfce7a20b8-4000035400000007
Target Name : iqn.2004-04.com.qnap:ts-809u:iscsi.sqlbackup.c0a123
Initiator : Root\SCSIADAPTER\0000_0
Initiator Scsi Device : \\.\Scsi3:
Initiator Bus : 0
Initiator Target Id : 0
Target LUN: 0x0 <--> OS Lun: 0x0
The operation completed successfully.
2.) Der Anfang...
For /f " delims=: tokens=1-2" %i in ('iscsicli reporttargetmappings') do @ech
o %i
fffffadfce7a20b8-4000035400000007
iqn.2004-04.com.qnap
Root\SCSIADAPTER\0000_0
\\.\Scsi3
0
0
0x0 <--> OS Lun
3.) Die Frage:
wie bekomme ich nur die SessionId für diesen Befehl iscsicli qlogintarget SessionID ?
ich wollte mir 'ne kleinen Batchdatei zusammenbauen die ein iSCSI Laufwerk mountet. Ich nachträglich auch sich von iSCSI Target abmelden. Das geht mit einer sich ändernden Session Id.
iscsicli qlogintarget <Session Id - die ich bräuchte>
1.) Mit folgenden Befehl bekomme ich die SessionID. (hinter den Doppelpunkt ist noch ein Leerzeichen!)
iscsicli reporttargetmappings
Microsoft iSCSI Initiator version 2.0 Build 3825
Total of 1 mappings returned
Session Id : fffffadfce7a20b8-4000035400000007
Target Name : iqn.2004-04.com.qnap:ts-809u:iscsi.sqlbackup.c0a123
Initiator : Root\SCSIADAPTER\0000_0
Initiator Scsi Device : \\.\Scsi3:
Initiator Bus : 0
Initiator Target Id : 0
Target LUN: 0x0 <--> OS Lun: 0x0
The operation completed successfully.
2.) Der Anfang...
For /f " delims=: tokens=1-2" %i in ('iscsicli reporttargetmappings') do @ech
o %i
fffffadfce7a20b8-4000035400000007
iqn.2004-04.com.qnap
Root\SCSIADAPTER\0000_0
\\.\Scsi3
0
0
0x0 <--> OS Lun
3.) Die Frage:
wie bekomme ich nur die SessionId für diesen Befehl iscsicli qlogintarget SessionID ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153861
Url: https://administrator.de/contentid/153861
Ausgedruckt am: 21.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
Moin Andynix,
du kannst die Ausgabe des "iscsicli reporttargetmappings"-Aufrufs nochmals Zeilenweise filtern mit einem FindStr auf das Suchwort "Session".
Beispiel am CMD-Prompt:
Im Batch kannst du dann diesen Wert, der jetzt in der dynamischen Variablen %i transportiert wird. in eine statische Variable spieichern.
Falls das Führende Leerzeichen nicht stört, dann kannst du alles in einer Zeile abfackeln:
Grüße
Biber
du kannst die Ausgabe des "iscsicli reporttargetmappings"-Aufrufs nochmals Zeilenweise filtern mit einem FindStr auf das Suchwort "Session".
Beispiel am CMD-Prompt:
>for /f "delims=: tokens=2" %i in ('iscsicli reporttargetmappings^|findstr "Session"') do @echo SessionID:[%i]
SessionID:[ fffffadfce7a20b8-4000035400000007]
Im Batch kannst du dann diesen Wert, der jetzt in der dynamischen Variablen %i transportiert wird. in eine statische Variable spieichern.
@echo off & setLocal
for /f "delims=: tokens=2" %%i in ('iscsicli reporttargetmappings^|findstr "Session"') do @set SessionID=%%i
REM jetzt ist %SessionID%= fffffadfce7a20b8-4000035400000007 [mit führendem Leerzeichen.
REM Falls das Leerzeichen stören sollte, was ich nicht glaube:
Set "SessionID=%SessionID:~1%"
REM und dann ... iscsicli qlogintarget SessionID %SessionID%
Falls das Führende Leerzeichen nicht stört, dann kannst du alles in einer Zeile abfackeln:
@for /f "delims=: tokens=2" %%i in ('iscsicli reporttargetmappings^|findstr "Session"') do iscsicli qlogintarget SessionID %%%i
Grüße
Biber