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

Prozentzeichen in Übergabeparameter

Frage Entwicklung Batch & Shell

Mitglied: Ren

Ren (Level 1) - Jetzt verbinden

21.11.2008, aktualisiert 11:47 Uhr, 6208 Aufrufe, 4 Kommentare

Hm, mein Problem ist schwierig zu beschreiben: ich will in einer Batch einen Liste mit Dateien und Verzeichnissen bearbeiten. In den Dateinamen können leider "!", "%", "&", und noch ein paar eklige Sonderzeichen auftauchen. Sagen wir mal, ich hätte folgende Dateien:
01.
"hallo.txt" 
02.
"test %20 blöd%.txt" 
03.
"test %genutztevariable%.txt"
Bis her habe ich dann soetwas:
01.
@echo off 
02.
set "genutztevariable=Kommt in Dateien nie vor: * ? \" 
03.
::hier stimmt die Ausgabe 
04.
for /f "delims=" %%i IN ('dir /b') DO echo "%%~i" 
05.
echo --- 
06.
::hier verschwinden meine %, oder werden durch deren Inhalte ersetzt 
07.
for /f "delims=" %%i IN ('dir /b') DO call :handlefile "%%~i" 
08.
goto :end 
09.
 
10.
:handlefile 
11.
echo "%~1" 
12.
::eigentliche Funktionen 
13.
goto :eof 
14.
:end
Die Ausgabe auf dem Bildschirm sieht so aus:
01.
"hallo.txt" 
02.
"test %20 blöd%.txt" 
03.
"test %genutztevariable%.txt" 
04.
--- 
05.
"hallo.txt" 
06.
"test 0 blöd.txt" 
07.
"test Kommt in Dateien nie vor: * ? \.txt"
Gibt es einen Möglichkeit, wie ich die Prozentzeichen und den Text zwischen ihnen als Übergabeparameter retten kann? setlocal enabledelayedexpansion geht glaube ich nicht, weil ich dann ja meine "!" verliere.
Mitglied: Netzheimer
21.11.2008 um 07:43 Uhr
Moin

%20 ist ein hex-ASCII-Leerzeichen. Die Ausgabe wäre ja dann richtig, oder?
Bitte warten ..
Mitglied: Ren
21.11.2008 um 10:16 Uhr
Es mag ja sein, das %20 ein hex-ASCII-Leerzeichen ist, aber es kann auch einfach als String in einem Dateinamen vorkommen, und in meiner Batch muss ich das dann als solchen String als Übergabeparameter übergeben. Ich habe den Text oben auch noch mal korrigiert und angepasst um zu zeigen, dass es nicht nur %20 ist, was schief läuft, sondern eigentlich jedes %xx%, weil es scheinbar einfach als Variable angesehen wird. Meistens ist eine solche Variable dann leer, es kann natürlich auch mal sein, dass sie nicht leer ist.
Bitte warten ..
Mitglied: Biber
21.11.2008 um 10:33 Uhr
Moin Ren,

versuche es in diesem Spezialfall (wenn Du weißt, dass die Dateinamen so aussehen könnten) so.
01.
:: --------RenBsp.bat 
02.
@echo off & setlocal 
03.
::hier stimmt die Ausgabe 
04.
for /f "delims=" %%i IN ('dir /b') DO echo %%i 
05.
echo --- 
06.
::hier verschwinden meine % jetzt nicht mehr 
07.
for /f "delims=" %%i IN ('dir /b') DO set "thisfile="%%~i"" & call :handlefile 
08.
goto :end 
09.
 
10.
:handlefile 
11.
Echo thisfile: %thisfile% 
12.
::eigentliche Funktionen ---- nimm %thisfile% statt %1 
13.
goto :eof 
14.
:end
Ausgabe:
01.
>renbsp 
02.
renBsp.bat 
03.
test %20 blöd%.txt 
04.
test.txt 
05.
hallo.txt 
06.
--- 
07.
thisfile: "renBsp.bat" 
08.
thisfile: "test %20 blöd%.txt" 
09.
thisfile: "test.txt" 
10.
thisfile: "hallo.txt"
Grüße
Biber
Bitte warten ..
Mitglied: Ren
21.11.2008 um 11:47 Uhr
Super! Früher, als ich noch nicht wusste, dass man bei call innerhalb einer Batch Übergabeparameter mitgeben kann, da hätte ich es auch so gemacht. Es Funktioniert! Vielen Herzlichen Dank! Ist zwar noch etwas früh, aber ein schönes Wochenende wünsche ich!
Bitte warten ..
Ähnliche Inhalte
Entwicklung
C sharp Übergabeparameter aus Liste wählbar machen (2)

Frage von MartinAD zum Thema Entwicklung ...

Batch & Shell
Problem mit Funktion und Combobox (7)

Frage von Druide83 zum Thema Batch & Shell ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(3)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...