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

CMD - Eintrag von Werten in Variablenform

Frage Entwicklung Batch & Shell

Mitglied: Juergenl

Juergenl (Level 1) - Jetzt verbinden

28.08.2007, aktualisiert 30.08.2007, 3722 Aufrufe, 2 Kommentare

FOR-Konstrukt, "Optionen ... , eol="

Guten Tag allerseits,

ich bin sehr froh über die kürzlich hier erschienene Anweisung von Heysel, ein Netzwerk per Script unter Verwendung von 'RMTSHARE' zu starten. Bei der Umsetzung der Aufgabe stoße ich aber wieder auf rein handwerkliche Schwierierigkeiten unter CMD (die mit der Netzwerkaufgabe nichts zu tun haben.)

Wegen besserer Übersichtlichkeit will ich sämtliche Vorgaben des Netzwerkes (Freigaben, Laufwerkszuweisungen pp) aus einer einheitlichen Textdatei auslesen:

"FOR /F "eol=0 tokens=2,3,4,5,6 delims=;" %%i IN (%nbasfile%) DO .... "

dabei sollen - je nach Workstation - unterschiedliche Zeilenbereiche der Textdatei (%nbasfile%) ausgewertet werden. Bei direktem Eintrag des Zeilenkopfes unter "eol= ... " (etwa 0 oder 1) ist das kein Problem. Dies tritt vielmehr auf, wenn ich diesen Wert für 'eol' als Variable eintragen will:

Der Eintrag "eol=%sperrmrk% .... " führt nämlich zu einem Syntaxfehler, der dieses Konstrukt unbrauchbar macht, so daß ich zu umständlichen bedingten GOTO-Anweisungen greifen müßte.

Eine zwar nur ähnliche Unsicherheit ergibt sich für mich bei RMTSHARE, wenn ich dort die Option /REMARK: mit der Variablen %Kommentar% belegen will. Das führt zwar nicht zu einem Syntaxfehler, aber ich kann die korrekte Wirkungsweise auch nicht kontrollieren.

Ich bitte um Euren Rat, insbesondere in der Frage, ob und wie ich den Wert von 'eol=' als Variable eingeben könnte.

Danke im Voraus und beste Grüße

Jürgen
Mitglied: Biber
29.08.2007 um 19:12 Uhr
Moin Juergenl,

wenn du die "Optonen", also die Werte der Schlüsselworte "eol","Delims", "tokens" etc. per Variable setzen willst, musst Du eine weitere Instanz der cmd.exe öffnen.

Also z.B.
01.
For %%x in (0 # ";") do cmd /c FOR /F "eol=%%~x tokens=2,3,4,5,6 delims=;" %%i IN (%nbasfile%) DO .... 
--------> das würde die "innere" FOR-Anweisung nacheinander mit der EOL-Werten [eol=0 eol=# eol=;] ausführen.
[das Semikolon muss in Anführungszeichen, da es sonst ignoriert werden würde,
deshalb diese Auflösung mit %%~x statt %%x]


Aber:
Falls Du in dem "DO..."-Teil der inneren For-Anweisung einer Variablen etwas zuweisen willst, wird dieser Wert hinterher nicht sichtbar sein. Denn dieses Set wiederum macht die mit cmd/c neu geöffnete Instanz.
Ein "Echo %%i %%j %%k ... >>logfile.txt" dagegen macht keine Probleme.

Grüße
Biber
Bitte warten ..
Mitglied: Juergenl
30.08.2007 um 12:09 Uhr
Hallo Biber und Gruß in die Runde,

besten Dank für diese prompte und wiederum wohlfundierte Antwort! (In meiner Ahnungslosigkeit habe ich mit dieser Frage offenbar ja etwas ziemlich Schweres losgetreten .. )

Ich werde also diesen für mich neuen Aspekt von CMD schnellstmöglich unter meiner Umgebung testen und versuchen, das Konstrukt besser zu verstehen.

Danke nochmals und beste Grüße

Jürgen
<JuergenL>
Bitte warten ..
Ähnliche Inhalte
Windows Server
Win 2008 R2 - CMD bleibt stehen (4)

Frage von emeriks zum Thema Windows Server ...

Windows 10
gelöst Remotedesktop beim Client via CMD beenden (4)

Frage von Rolf-Hanka.ITD zum Thema Windows 10 ...

Batch & Shell
gelöst Mit Powershell schwarzes CMD-Fenster unterdrücken? (4)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
Ungewolltes Ausgabeformat in CMD (Befehlszeile+ Befehl) (3)

Frage von DerArne zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Multimedia & Zubehör
gelöst Iphone 6 prob (10)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (10)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...