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, 3740 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 Systemdateien
gelöst Mit CMD Verknüpfung erstellen mit der Option "Ausführen in" (5)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Windows 7
Link auf Desktop um CMD Befehl auszuführen (7)

Frage von XPFanUwe zum Thema Windows 7 ...

Windows Server
Cmd-Fenster blitzt bei periodischer GPO-Aktualisierung ganz kurz auf (9)

Frage von marc-1303 zum Thema Windows Server ...

Batch & Shell
Findstr Path CMD ja - Batch Script nein - FireFox Profiles (2)

Frage von ChrisIO zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Server-Hardware
Einem Stromausfall entgegen wirken (19)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...