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 im Dateipfad macht Ärger

Mitglied: sysroy

sysroy (Level 1) - Jetzt verbinden

23.07.2009, aktualisiert 10:54 Uhr, 6677 Aufrufe, 6 Kommentare

Hallo miteinander,

OS: Win XP und Win Server 2003

Mein Problem sind Sonderzeichen (z.B. Prozentzeichen "%", kaufmännisches UND "&") in Datei- und Ordnernamen, die beim automatischen Kopieren von Dateien nicht mit gelesen werden und dann zu "Datei nicht gefunden..." - Fehlern führen.

Ich habe zwar den Beitrag "Übergabe von Variabeln die Prozentzeichen enthalten per call" gelesen aber es hat mich nicht weitergebracht - vermutlich nicht richtig verstanden .

Das Problem steht im Zusammenhang mit meiner vorherigen Frage (Verzeichnisstrukturen automatisch so umkopieren, dass in der Kopie keine Leerzeichen mehr in den Ordner- und Dateinamen sind Dateien mit von Leerzeichen befreiten Pfaden kopieren), zu der mir Bastla folgenden Quellcode geschickt hat, der normalerweise auch funktioniert:

01.
@echo off & setlocal 
02.
set "Quelle=D:\Eigene Daten" 
03.
set "Ziel=D:\neueDaten" 
04.
 
05.
for /f "delims=" %%i in ('dir /s /b /a-d "%Quelle%"') do set "Pfad=%%i" & call :CopyFile "%%i" 
06.
goto :eof 
07.
 
08.
:CopyFile 
09.
call set "PfadNeu=%%Pfad:%Quelle%=%%" 
10.
set "PfadNeu=%PfadNeu: =%" 
11.
xcopy %1 "%Ziel%%PfadNeu%*">nul 
12.
goto :eof
In der Zeile

01.
call set "PfadNeu=%%Pfad:%Quelle%=%%"
oder

01.
set "PfadNeu=%PfadNeu: =%"
erfolgt der Verlust des %-Zeichens


Frage: Wie kann der Code geändert werden, dass die Dateipfade mit diesen Sonderzeichen erhalten bleiben??

Danke
sysroy
Mitglied: rubberman
23.07.2009 um 14:45 Uhr
Nur mal ein Tip, ohne dass ich mir das scho näher angesehen hätte. Vermutlich sind die beiden von dir verdächtigten Zeilen nicht die Übeltäter, sondern vielmehr der Parameter %%i (alias %1 in deiner Subroutine). Versuche dort mal mit der Variablen "%Pfad%" zu arbeiten.
Bitte warten ..
Mitglied: sysroy
24.07.2009 um 08:33 Uhr
Nein rubberman,

das war's nicht.

Übrigens wird in meinem Browser die Zeile 05 dargestellt als wären da zwei Aufrufe "Call: Copyfile", im Quelltext sieht man es aber richtig.
Bitte warten ..
Mitglied: rubberman
24.07.2009 um 21:38 Uhr
Hmm, was ich meinte sieht so aus:
01.
@echo off &setlocal 
02.
set "Quelle=D:\Eigene Daten" 
03.
set "Ziel=D:\neueDaten" 
04.
 
05.
for /f "delims=" %%i in ('dir /s /b /a-d "%Quelle%"') do set "Pfad=%%i" & call :CopyFile 
06.
goto :eof 
07.
 
08.
:CopyFile 
09.
call set "PfadNeu=%%Pfad:%Quelle%=%%" 
10.
set "PfadNeu=%PfadNeu: =%" 
11.
xcopy "%Pfad%" "%Ziel%%PfadNeu%*">nul 
12.
goto :eof
Sollte doch eigentlich funktionieren?!
Bitte warten ..
Mitglied: bastla
24.07.2009 um 22:03 Uhr
Hallo sysroy!

Da das Prozentzeichen beim Speichern des Pfades ohne Leerzeichen in die Variable %PfadNeu% verloren geht, sollte dieses Speichern vermieden werden; zusätzlich kann, wie auch rubberman schon erwähnt hat, auch der Parameter %1 durch %Pfad% ersetzt werden (haben den selben Inhalt, aber eine unterschiedliche Anzahl von Prozentzeichen im Variablennamen bzw sind unterschiedliche Arten von Variablen):
01.
:CopyFile 
02.
call set "PfadNeu=%%Pfad:%Quelle%=%%" 
03.
xcopy "%Pfad%" "%Ziel%%PfadNeu: =%*">nul 
04.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: sysroy
27.07.2009 um 10:36 Uhr
Hallo rubberman, hallo Bastla,

war das Wochende weg, deshalb erst heute die Anwort.

Es funktioniert genau so, wie rubberman es angibt - keine Ahnung, was ich beim ersten Versuch falsch gemacht habe .

Vielen Dank an Euch Beide

sysroy
Bitte warten ..
Mitglied: pieh-ejdsch
29.07.2009 um 01:35 Uhr
der Verlust des Prozentzeichens erfolgt nicht bei Zeile 09 oder 10 sondern weil in Zeile 05 hinter dem CALL die Variable Übergeben wird
es war ein bischen kniffliger, da die Forschleife eine Variable beim Übergeben in eine Subroutine als Parameter nicht mit den Prozentzeichen übergibt, sondern dieses einfach entfernt.
das bedeuted, sobald Du eine Variable mit dem Prozentzeichen in eine Subroutine schickst wird das Prozentzeichen entfernt es wird zwar noch hinter dem CALL mit angezeigt aber bei der Parameterübergabe haperts...
Ob daran nun die Subroutine schuld ist ....?? die Verzögerte Variablenauflösung ändert jedenfalls an dieser Sache auch nichts. Ach ja - der Bill weiss es bestimmt - warum...
also ist Deine eigentliche Zeile 11 Schuld an der ganzen Miesere.

Dein & macht so eigentlich gar keine Probleme, da Du ja die Gänsefüsschen drumrum gefriemelt hast.
nur wenn Du Deine Variable Ohne Gänsefüsschen weiterverarbeiten willst, dann brauchst Du diese Zusatzzeile mit der Variablenumschreibung. Du musst also schon vorher wissen ob die Gänsefüsschen gebraucht werden oder nicht.
bei Dateinamen mit Leerzeichen brauchst Du ja ohnehin die Federviehlatschenfüller.


01.
@ echo off 
02.
for /f "delims=" %%i in ('dir /s /b /a-d "D:\Eigene Daten"') do set "pfad=%%i" & call :CopyFile 
03.
goto :eof 
04.
:CopyFile 
05.
set "pfadneu=D:\neue%pfad:~10%" 
06.
xcopy "%pfad%" "%pfadneu: =%*">nul
Gruß Phil
[Edit] ups ist ja schon beantwortet naja steht halt nochmehr da...[/Edit]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateipfad abgreifen
Frage von Julian2222Batch & Shell4 Kommentare

Hallo, wenn man ja eine Datei öffnet, wird ja der Pfad der Datei dem Standardprogramm welches in Windows hinterlegt ...

VB for Applications
Dateipfad extrahieren
gelöst Frage von Anna2701VB for Applications4 Kommentare

Ich habe folgendes : Filepath = TxtHyperlinkDokument.Hyperlink.Address Nun möchte ich mit Hilfe von Filepath, Filepath_Neu erzeugen, indem nur der ...

Batch & Shell
Dateipfad ausgeben
gelöst Frage von tegwertBatch & Shell2 Kommentare

Hallo zusammen! Ich nutze folgende Zeile zur Ermittlung der Dateipfade einer bestimmten mehrfach vorkommenden Datei: for %%a in (F ...

Mac OS X
Auf Windows Dateipfade zugreifen von OSX
Frage von nd5000Mac OS X8 Kommentare

Hallo zusammen, Kollegen die Windows nutzen schicken immer wieder Mails mit Links zu Datein auf einem Netzlaufwerk. Zum Beispiel: ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 17 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 22 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...