Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Teil-Ausgabe eines Befehls einen 2ten Befehl übergeben

Frage Entwicklung Batch & Shell

Mitglied: Andynix

Andynix (Level 1) - Jetzt verbinden

27.10.2010 um 09:34 Uhr, 6493 Aufrufe, 2 Kommentare

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 ?
Mitglied: Biber
27.10.2010 um 10:12 Uhr
Moin Andynix,

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.
01.
@echo off & setLocal 
02.
for /f "delims=: tokens=2" %%i in ('iscsicli reporttargetmappings^|findstr "Session"') do @set SessionID=%%i 
03.
REM jetzt ist %SessionID%= fffffadfce7a20b8-4000035400000007 [mit führendem Leerzeichen. 
04.
REM Falls das Leerzeichen stören sollte, was ich nicht glaube: 
05.
Set "SessionID=%SessionID:~1%" 
06.
REM und dann  ... iscsicli qlogintarget SessionID %SessionID%
Falls das Führende Leerzeichen nicht stört, dann kannst du alles in einer Zeile abfackeln:
01.
@for /f "delims=: tokens=2" %%i in ('iscsicli reporttargetmappings^|findstr "Session"') do iscsicli qlogintarget SessionID %%%i
Grüße
Biber
Bitte warten ..
Mitglied: Andynix
27.10.2010 um 11:43 Uhr
Vielen Dank Bieber, so es funktioniert wunderbar.

@for /f "delims=: tokens=2" %%i in ('iscsicli reporttargetmappings^|findstr "Session"') do iscsicli logouttarget %%%i
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(3)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Cloud-Dienste
Google muss ausländische E-Mails an FBI übergeben (16)

Link von Lochkartenstanzer zum Thema Cloud-Dienste ...

Datenbanken
gelöst SQL Abfrage - Ausgabe von Person mit Privat- und Dienstadresse (3)

Frage von CBruns zum Thema Datenbanken ...

Batch & Shell
gelöst Ausgabe filtern (2)

Frage von DoktorApfel zum Thema Batch & Shell ...

Batch & Shell
Powershell Import Computer aus csv in array und Befehl abarbeiten (4)

Frage von Robbi666 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (24)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Netzwerke
Abisolierwerkzeug (11)

Frage von SarekHL zum Thema Netzwerke ...

Hyper-V
Langsames Netzwerk i210 LAN Karte (11)

Frage von Akcent zum Thema Hyper-V ...

Windows 10
Welches OS für Firmengeräte? (10)

Frage von MarkusVH zum Thema Windows 10 ...