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 Übergabe von Variabeln die Prozentzeichen enthalten per call

Mitglied: miniversum

miniversum (Level 3) - Jetzt verbinden

04.05.2008, aktualisiert 16:53 Uhr, 7506 Aufrufe, 2 Kommentare

Hallo
Ich habe eine Batch inder ich unter anderm in einer For-Schleife Dateinamen aus einer Datei auslese die dann, nach weiteren Aktionen vorher, kopiert werden sollen.

Daher übergebe ich diese Dateinamen jeweils per Call einer Unterfunktion inder das alles gemacht wird und am ende eben auch die Kopieraktion.

Leider können in den Dateinamen alle möglichen Zeichen vorkommen, also auch ! (weshalb ich nicht mit delayedexpansion arbeiten kann) und eben auch %. Und genau dort liegt das Problem.
Übergebe ich per call die einzelnen Dateinamen werden bei denen die ein % enthalten die Prozentzeichen einfach entfernt. Dadurch geht am Ende die Kopieraktion schief weil die Datei (die ja nun ohne % zum Kopieren genommen werden soll, nicht gefunden werden kann.

Hier mal zur besseren Anschauung ein kleines Beispiel was ich meine.
@echo off
FOR /F "delims=" %%i in (Datei.txt) do (
echo Vorher: %%i
call:machwas "%%i"
)
goto:eof

:machwas
echo Nachher: %~1
goto:eof

In Datei.txt stehen die Datienamen einfach untereinander:
C:\Verzeichnis\erste Datei.txt
d:\anderes Verzeichnis\andere% Datei.txt
c:\noch ein Verzeichnis\und noch ne Datei.txt

Würde ich die Beschriebene Batchdatei ausführen würde allerdings sowas bei rauskommen:
Vorher: C:\Verzeichnis\erste Datei.txt
Nachher: C:\Verzeichnis\erste Datei.txt
Vorher: d:\anderes Verzeichnis\andere% Datei.txt
Nachher: d:\anderes Verzeichnis\andere Datei.txt
Vorher: c:\noch ein Verzeichnis\und noch ne Datei.txt
Nachher: c:\noch ein Verzeichnis\und noch ne Datei.txt
Wie man sehen kann wird die zweite Datei "andere% Datei.txt" nicht richtig übergeben.
Was kann ich da tun?
Ich hab schon versucht per set befehl das % durch ein ^% zu ersetzen aber das haut nicht wirklich hin wieichs versucht habe.
Auch eine Übergabe als
call:machwas "%%~si"
also in 8.3 Form nützt mir nichts, weil ich den ganzen Namen vorher in dieser "Machwas" benötige.

Ich bin für alle hilfreichen Tips dankbar.
Mitglied: bastla
04.05.2008 um 13:17 Uhr
Hallo miniversum!

Ich hab schon versucht per set befehl das % durch ein ^% zu ersetzen
Ersetze % durch %% ...

[Edit] ... bzw noch einfacher:
01.
@echo off
02.
FOR /F "delims=" %%i in (Datei.txt) do (
03.
    set "Dat=%%i"
04.
    echo Vorher  : %%i
05.
    call:machwas "%%i"
06.
)
07.
goto:eof
08.

09.
:machwas
10.
echo Nachher : %~1
11.
echo Variable: %Dat%
12.
echo\
13.
goto:eof
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
04.05.2008 um 16:53 Uhr
Habs jetzt wie in dem Edit gemacht.

War irgentwie auf die Übergabe versteift... Jetzt gehts wie gewollt.
Danke
Bitte warten ..
Ähnliche Inhalte
Voice over IP
Call Routen - Verständnis Lancom
Frage von ZZaaiiggaaVoice over IP12 Kommentare

Hallo zusammen, ich verstehe die Call Routen vom Lancom Router nicht ganz: Kann mir jemand vlt. anhand der 3 ...

Batch & Shell
Call befehl als Admin!
Frage von FrankreichBatch & Shell4 Kommentare

Hallo liebes Forum! Ich rufe in meinem Batchprogramm ein anderes Batchprogramm mit dem befehl "call" auf. Das Programm das ...

TK-Netze & Geräte

Nummernsignalisierung bei Rufumleitung (Cisco Call Manager)

gelöst Frage von TripleDoubleTK-Netze & Geräte2 Kommentare

Hallo Forum, wir verwenden einen Cisco Call Manager in der Version 10.5.2.11900-3 und haben folgendes Problem: Bei Rufumleitung nach ...

Router & Routing

WLAN-Call im Gästewlan der Fritzbox

gelöst Frage von bandiandiRouter & Routing12 Kommentare

Hallo zusammen, vielleicht nur ein kleiner Kniff, ich nutze zuhause eine Fritzbox 7590, fahre einen Accesspoint über den Fritz ...

Neue Wissensbeiträge
Firewall
Übernahme von SOPHOS durch Thoma Bravo
Information von Dilbert-MD vor 15 StundenFirewall1 Kommentar

Kam die Tage per Newsletter: Zitat: " Das Sophos Board of Directors hat gestern bekanntgegeben, dass die Private-Equity-Investment-Firma Thoma ...

Windows Netzwerk

Ereignis-ID 20226 RasClient Ursachencode 829 VPN Verbindung wird abgebrochen

Anleitung von Hardstyles vor 6 TagenWindows Netzwerk

Hallo zusammen, nach Stundenlanger Analysen und test konnten wir den Fehler Lösen. es geht um folgende Fehler Meldung in ...

Windows 10

Windows 10 Version 1903: Update KB4522015 blockt VMware Workstation

Information von kgborn vor 10 TagenWindows 10

Nur eine kurze Information für Leute, die schon Windows 10 Version 1903 in Betrieb haben und dort VMware Workstation ...

VB for Applications

Fritzbox Telefonbuch - XML-Importdatei aus Excel erstellen

Tipp von PeterleB vor 10 TagenVB for Applications1 Kommentar

Das Thema geistert schon seit Jahren durch verschiedene Foren. Habe mich jetzt mal damit etwas intensiver befasst und hoffe, ...

Heiß diskutierte Inhalte
Switche und Hubs
24 Rasperry PI vernetzen, was nimmt man da?
gelöst Frage von clkdivSwitche und Hubs25 Kommentare

Hallo, ich möchte 24 Raspberries vernetzen. Bis jetzt waren es 4 Stück, ich habe dafür einen cheap-o-cheap Edimax-Hub benutzt, ...

LAN, WAN, Wireless
Hausnetzwerk mit Routern
Frage von perhaps-labs.comLAN, WAN, Wireless22 Kommentare

Hallo an Alle, ich habe ein Riesenhaus erworben und möchte nun überall ein Netzwerk dafür installieren. Das Haus hat ...

E-Mail
Optionen des Mails-Empfangs
Frage von SchauerE-Mail19 Kommentare

Hallo an Alle. ich habe die Aufgabe bekommen zu recherchieren, welche Optionen sich anbieten Mails zu empfangen. Klingt banal, ...

Firewall
Welche Anbieter, Geräte und Programme gelten als sicher?
Frage von NordicMikeFirewall16 Kommentare

Moin zusammen, wenn man sich die vielen Sicherheitslösungungen ansieht, erkenn man nicht, auf was man sich einlassen würde. Man ...