Top-Themen

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, 6216 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
Batch & Shell
Powershell Übergabeparameter
Frage von Bommi1961Batch & Shell1 Kommentar

Hallo zusammen! Ich weis das ist hier schon oft beschrieben wurden, aber leider bekomme ich es nicht hin. Mein ...

Entwicklung
C sharp Übergabeparameter aus Liste wählbar machen
Frage von MartinADEntwicklung2 Kommentare

Hallo, ich beschäftige mich Hobby-mäßig mit der Programmierung, also schon mal Entschuldigung wenn sich meine Fragen etwas dilettantisch lesen. ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 17 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 22 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 22 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
gelöst Frage von prodriveNetzwerkmanagement12 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...