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

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, 2672 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?

01.
@echo off & setlocal enabledelayedexpansion 
02.
rem hier kommen div. Abfragen etc ... die haben mit meinem Problem aber nix zu tun  
03.
 
04.
rem ab Zeile 32 in der "einstellungen.txt" stehen untereinander,  ohne Anführungszeichen und ohne Backslash am Ende, die zu sichernden Ordner. 
05.
 
06.
for /f "tokens=* delims= skip=32" %%e in (einstellungen.txt) do ( 
07.
 
08.
rem %ZIEL% ist ebenfalls in einstellungen.txt festgelegt und wird weiter oben ausgelesen 
09.
 
10.
XCOPY "%%e" "%ZIEL%" /D /E /Y /I /H /R >%temp%\log.log 
11.
 
12.
rem hier kommt dann noch das errolevel-handling usw ... erstaunlicherweise wird hier mit %%e der "richtige" und vollständige Ordner bzw. Pfad ausgegeben 
13.
)
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:
for /f "skip=32 delims=" %%e in (einstellungen.txt) do (
und die "xcopy"-Schalter lassen sich auch am Stück angeben:
XCOPY "%%e" "%ZIEL%" /DEYKIHR >%temp%\log.log
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
01.
D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401
und "ankommen" tut in D:\BACKUP ein Ordner "namens"
01.
V7.14.01
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
01.
for /f "skip=32 tokens=* delims= " %%e in (einstellungen.txt) do (
in
01.
for /f "skip=32 delims=" %%e in (einstellungen.txt) do (
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,
01.
/DEYKIHR
statt
01.
/D /E /Y /K /I /H /R
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!
01.
For /F "tokens=* delims= skip=9" %%a IN (einstellungen.txt) DO echo %%a>>ziel.txt 
02.
set /p ZIEL=<ziel.txt 
03.
del ziel.txt
und in der einstellungen.txt steht (in Zeile 10) einsam und verzweifelt:
01.
g:\BACKUP
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 ohne überflüssige Datei:
for /f "tokens=1* delims=:" %%s in ('findstr /n "^" "einstellungen.txt"^|findstr /B "10:"') do set "Ziel=%%t"
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
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
xcopy "D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401" "G:\Backup" /dehikry
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:
Ziel=G:\Backup
dann kannst Du nämlich vorweg mit einer einfachen Schleife
for /f "delims=" %%i in (einstellungen.txt) do set "%%i"
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
set Bck_>einstellungen_neu.txt
in eine neue "Einstellungsdatei" zu übertragen).

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Pfadangabe in Datei ändern
gelöst Frage von NephrisBatch & Shell6 Kommentare

Ich musste mich bislang nur sehr rudimentär mit batch beschäftigen. Nun komme gelange ich deutlich an meine Grenze, und ...

Batch & Shell

Batch - Datei aus Ordner einlesen mit Ausnahmen!

gelöst Frage von DaedrafactionBatch & Shell4 Kommentare

Hallo! Ich bin halb am verzweifeln Ich möchte bestimmte Datei aus einem Ordner auslesen und in eine Datei speichern. ...

Batch & Shell

Batch: Aktuellen Verzeichnisnamen einer Pfadangabe auslesen

gelöst Frage von c20082005Batch & Shell4 Kommentare

Hallo, ich bekomme folgendes (ich vermute simples) Problem nicht gelöst: Ich habe eine Pfadangabe in einer Variablen, z.B.: "c:\a\b\c\d", ...

Batch & Shell

Variable aus VBS in Batch einlesen

gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 8 StundenVerschlüsselung & Zertifikate1 Kommentar

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 2 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 2 TagenHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 2 TagenSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Heiß diskutierte Inhalte
Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke14 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...

Tipps & Tricks
Nagstamon und PRTG Monitoring
Frage von Der.ITlerTipps & Tricks13 Kommentare

Hallo Ihr, heute am Sonntag bin ich mal früh aufgestanden um mich mit dem Problem von Gestern zu beschäftigen. ...

Hardware
Sophos SG135 - Routing
Frage von Xaero1982Hardware13 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

Datenschutz
Gilt ein Ransomware-Befall als Datenpanne nach DSGVO?
Frage von MOS6581Datenschutz12 Kommentare

Moin Kollegen, wenn sich jemand Ransomware einfängt und dadurch bspw. Kundendaten verschlüsselt werden; gilt dies dann als meldepflichtige Datenpanne ...