Batch - beim Aus- bzw. Einlesen von Pfadangaben aus einer ext. Datei macht der Unterstrich im Pfadnamen Probleme!?

Mitglied: klarname

klarname (Level 1) - Jetzt verbinden

14.08.2011, aktualisiert 15.08.2011, 2766 Aufrufe, 6 Kommentare

alter Newbie, halbwegs fit in PHP, freut sich über Antworten ... und die Qualität dieses Forums hier ...

Ich schreibe ein Batch-Backup-Programm (danke, ich weiß, es gibt robocopy ... aber ich will es selbst lernen), bei der in einer ext. txt-Datei div. Variablen (Email, Zielpfad, zu sichernde Ordner) etc. drin stehen.
Einer dieser zu sichernden Ordner "heißt" (z.B.):
D.\Dokumente und Einstellungen\AsusUpdate_V4512
Bei dem Versuch mit XCOPY werden zwar alle Dateien aus o.g. Pfad/Ordner sauber kopiert, der Ordner selbst aber ("AsusUpdate_V4512") wird jetzt im Zielverzeichnis zu "V4512" verstümmelt. Ich vermute, es liegt am Unterstrich!?
Und das verstehe ich nicht, da ich den Ordner in meinem Batch mit " " als String verarbeite!?
Wo ist mein Denkfehler?

Mitglied: bastla
14.08.2011 um 19:22 Uhr
Hallo klarname und willkommen im Forum!

Da der Ordnername ja am Ziel nicht stimmt, wäre es schon relevant, die Zuweisung an die Variable %ZIEL% auch darzustellen (und das am besten mit passender Formatierung) ...
Die Schleife würde ich übrigens eher so schreiben:
und die "xcopy"-Schalter lassen sich auch am Stück angeben:
Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
15.08.2011 um 08:16 Uhr
Aloha, ...

Suche nicht unbedingt eine Lösung

... wir dafür aber immer noch eine Begrüßung, einen Gruß und T-Mos oftmals angesprochene Ross & Reiter, die sich, wie bastla bereits genannt hat, in der Ausgabe von z.B. %Ziel% wiederfinden können ...

greetz André

langsam aber sicher müssen die Leute doch einmal lernen, wie man grüßt und dass es eine in rot-dargestellte Formatierungshilfe gibt *grml*

P.S.: Arbeite er wirklich mit D.\Dokumente und Einstellungen\AsusUpdate_V4512? Ich, als Windows-Betriebssystem, würde jetzt einen Ordner D. im aktuellen Verzeichnis suchen - aber ich nehme an, es ist nur ein Typo auf die man aber gerade in Sachen Batch & Co. akribisch achten sollte
P.P.S.: Um das nachvollziehen zu können, habe ich den Kopiervorgang einfach mal nachgestellt und das Resultat: Es wird kein Ordner angelegt, sondern nur die Dateien aus dem Ordner %%e ins %Ziel% kopiert, nur mit %Ziel%\%%~ne wird da bei mir ein Verzeichnis angelegt
Bitte warten ..
Mitglied: klarname
15.08.2011 um 08:52 Uhr
Korrektur:
der Ordner der kopiert werden soll ist
und "ankommen" tut in D:\BACKUP ein Ordner "namens"
Sieht irgendwie wie ne Datumsformatierung aus, oder?

Hast Recht André ... besser so?
Und: Dein "Verdacht" mit D. ist nicht unbegründet; passiert schliesslich oft genug ... trifft aber hier zum Glück nicht zu. War/ist tatsächlich nur ne Typo ...

Die Codezeile
in
zu ändern, also auf die (unbegrenzten) *-tokens zu verzichten, führt dazu, dass gar nix mehr kopiert wird!!?
Aber, dass die Schalter auch zusammengefasst werden können,
statt
war mir neu ... und schon wieder was gelernt!

Aber ansonsten, ja, ohne zu sagen/zeigen, wo und wie ich mein %ZIEL% hole, ist kaum ne Fehlersuche möglich. Sorry!
und in der einstellungen.txt steht (in Zeile 10) einsam und verzweifelt:
Hab auch schon versucht, die Angabe dort als String (" ") zu hinterlegen und bei XCOPY dann ohne " " zu verarbeiten ... führt aber zum gleichen seltsamen Ergebnis ...
Bitte warten ..
Mitglied: Skyemugen
15.08.2011 um 09:02 Uhr
Aloha,

also wie oben im P.P.S. angemerkt, wird rein mit %Ziel% bei mir gar kein Verzeichnis angelegt, sondern die Dateien ins %Ziel%-Verzeichnis kopiert.
for /f "skip=32 delims=" funktioniert einwandfrei ... und deine Zielsetzung lässt sich auch optimaler setzen ;-) face-wink ohne überflüssige Datei:
greetz André

P.S.: Welches OS?

edit: Zielsetzung als Code

P.P.S.: Hm, auch mit der neuen Zahl, tritt dieses Phänomen bei mir (XP x86) nicht auf, allerdings funktioniert bei mir auch bastlas for-Anweisung einwandfrei ;-) face-wink
Bitte warten ..
Mitglied: klarname
15.08.2011 um 09:12 Uhr
Stimmt! So hatte ich es erwartet und so sollte es sein, dass kein Verzeichnis angelegt wird, sondern alle Dateien aus dem Ursprungsordner D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401 in den Zielordner G:\BACKUP kopiert werden ... aber: da wird tatsächlich ein Ordner namens V7.14.01 angelegt und darin brav und ordentlich (aber nicht gewollt) die Dateien aus genanntem Ordner reinkopiert.
Ein zweiter Ursprungsordner (D:\Dokumente und Einstellungen\pbid\Cookies) wird dagegen wie gewünscht kopiert, d.h. nur die Dateien aus Cookies ...
Zum OS: WinXP 32
Bitte warten ..
Mitglied: bastla
15.08.2011 um 11:50 Uhr
Hallo klarname!

Vorweg: Ebenfalls unter XP getestet tut bei mir ein
genau, was es soll - daher wäre es sinnvoll, per "echo on" in der ersten Zeile einmal nachzusehen, wie dieser Befehl (mit aufgelösten Variablen) bei Dir aussieht (dazu natürlich den Batch aus der CMD-Shell starten) ...
Zu
auf die (unbegrenzten) *-tokens zu verzichten, führt dazu, dass gar nix mehr kopiert wird!!?
"tokens=*" wird nicht benötigt, wenn durch "delims=" festgelegt wurde, dass keine Zerlegung erfolgen soll (kein Trennzeichen > keine Teile).
Generell würde ich die "einstellungen.txt" (am Beispiel Deiner Zeile 10) eher so aufbauen:
dann kannst Du nämlich vorweg mit einer einfachen Schleife
alle benötigten Werte gleich in Variablen schreiben lassen, wobei es zusätzlich sinnvoll sein könnte, die Variablennamen mit einem einheitlichen Präfix zu versehen, also zB "%Bck_Ziel%" anstelle von "%Ziel%" zu verwenden, da sich diese dann leichter am Stück bearbeiten lassen (um sie zB mit
in eine neue "Einstellungsdatei" zu übertragen).

Grüße
bastla
Bitte warten ..
Heiß diskutierte Inhalte
Hyper-V
ESXi free oder Windows Hyper-V Server 2019
lukas0209Vor 1 TagAllgemeinHyper-V27 Kommentare

Hallo, ich brauche ca. 2 oder 3 Windows 10 virtualisiert um Dinge zu testen. Ist es dafür sinnvoller ein Windows Hyper-V Server 2019 (kostenlos) ...

Off Topic
Nach 700 Tagen adwcleaner
altmetallerVor 1 TagAllgemeinOff Topic8 Kommentare

Hallo, ich habe in meinem Netzwerk diverse Maßnahmen, um nicht nur Angriffe, sondern auch - sagen wir mal - unerwünschte Datenabflüsse und Tracking zu ...

Exchange Server
0-day Exploit Chain für Exchange Server - Patches verfügbar
kgbornVor 1 TagInformationExchange Server6 Kommentare

Zur Info: Microsoft warnt vor einer Exploit-Chain, bei der vier 0-day-Schwachstellen für gezielte Angriffe auf Exchange per Outlook Web App kombiniert werden (eine chines. ...

Netzwerkgrundlagen
DS-Lite Verständnisfrage Wireguard
gelöst fnbaluVor 1 TagFrageNetzwerkgrundlagen22 Kommentare

Hallo zusammen, bisher läuft bei mir alles klassisch. pfSense mit DDNS und ich verbinde mich mit OpenVPN in das Heimnetz und erspare mir so ...

Windows 10
Windows 10 schickt lokale Anfragen an das Gateway - was tun?
gelöst runthegaunzVor 21 StundenFrageWindows 1015 Kommentare

Hallo! Ich bin vor ein paar Tagen wieder von Linux auf Windows umgestiegen. Ich hab die Windows 10 Version 20H2 installiert, wurde von Windows ...

Switche und Hubs
23 Cisco Switch einrichten - Wie am einfachsten?
gelöst Freak-On-SiliconVor 1 TagFrageSwitche und Hubs18 Kommentare

Hallo; Ich habe hier 4stk Cisco SX350X-24 9Stk Cisco SG350X-48P 10Stk Cisco SG350X-48 Diese werden aufgeteilt auf 9 Racks, und ersetzen alte HP Switches. ...

HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 5 StundenFrageHTML16 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

Exchange Server
Aktuelle Exchange Sicherheitslücke
jojo0411Vor 1 TagAllgemeinExchange Server11 Kommentare

Hallo Leute, Momentan gibt es da wieder einmal ein schönes neues Thema. Sehe ich das richtig das ich mit Exchange 2016 und CU 19 ...