Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Batch - SpecialFolder als Variable aus Datei lesen

Frage Entwicklung Batch & Shell

Mitglied: rubberman

rubberman (Level 3) - Jetzt verbinden

25.01.2008, aktualisiert 12:49 Uhr, 9821 Aufrufe, 3 Kommentare

Hallo Zusammen,

habe ein Batchskript, mit dem ich in einer INI-Datei lese und mit diesen Daten weiter arbeite.
Grundsätzlich kein Problem. Mir ist aber aufgefallen, dass ich in die INI keine batchüblichen SpecialFolder-Variablen schreiben kann.
Zum Ausprobieren habe ich folgendes Szenarium gebaut:
abc.bat und xyz.ini stehen im selben Verzeichnis.

abc.bat:
@ECHO OFF
SETLOCAL
::
SET "IniFile=xyz.ini"
SET "KWord=Pfad"
FOR /F "DELIMS== TOKENS=2" %%a IN ('FINDSTR "%KWord%" "%cd%" %IniFile%') DO SET p=%%a
::
ECHO %p%
PAUSE>NUL


xyz.ini:
Pfad=%userprofile%\Desktop

Wer's ausprobiert sieht, dass die Ausgabe so aussieht:
%userprofile%\Desktop

Das bedeutet, der Variablen p wird nur der Wert des Teilstrings zugeornet, ohne dass %userprofile% interpretiert wird.

Was muss ich also tun um folgende Ausgabe zu erhalten:
C:\Dokumente und Einstellungen\>User sowieso<\Desktop

(PS: Wenn in der INI mal ein normaler Pfad in der Form "Pfad=C:\irgendwie\irgendwo" steht, sollte das ganze natürlich auch noch funzen.)

Danke vorab
Steffen
Mitglied: rubberduck
25.01.2008 um 09:41 Uhr
Versuch es mal so:

abc.bat
01.
@ECHO OFF 
02.
SETLOCAL 
03.
:: 
04.
SET "IniFile=xyz.ini" 
05.
SET "KWord=Pfad" 
06.
FOR /F "DELIMS== TOKENS=2" %%a IN ('FINDSTR "%KWord%" %IniFile%') DO call :Process %%a 
07.
:: 
08.
:Process 
09.
ECHO %1 
10.
PAUSE>NUL
xyz.ini
01.
Pfad="%userprofile%\Desktop" 
02.
Pfad="%systemroot%" 
03.
...etc.
Um Fehler auszumerzen schreib Deine Pfade mit Hochkomma.

Wenn alle Stricke reissen, dann frag mal Biber. Er ist eine Koriphäe auf dem Gebiet des Shell-Scripting (Batch)
Bitte warten ..
Mitglied: rubberman
25.01.2008 um 10:44 Uhr
Hallo rubberduck,

danke für die schnelle Antwort. War genau der Denkanstoß, der mir gefehlt hat.

Gruß
Steffen
Bitte warten ..
Mitglied: miniversum
25.01.2008 um 12:49 Uhr
Oder mach diese kleine Änderung:
Ändere:
FOR /F "DELIMS== TOKENS=2" %%a IN ('FINDSTR "%KWord%" "%cd%" %IniFile%') DO SET p=%%a
in
FOR /F "DELIMS== TOKENS=2" %%a IN ('FINDSTR "%KWord%" "%cd%" %IniFile%') DO CALL SET p=%%a

miniversum
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
Zu viele Variablen in Batch-Script? Speicherproblem? (2)

Frage von dolsch zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (31)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...