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, 2675 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
Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 2 StundenHumor (lol)

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Exchange Server

Exchange 2010-2019 Sicherheitslücke durch Regkey löschen schließen

Information von sabines vor 13 StundenExchange Server1 Kommentar

Unter ist eine Lücke im Exchange 2010-2019 beschrieben, die durch das Löschen eines reg keys geschlossen werden kann. In ...

Windows Server
Erneutes Release von WS2019 und Win10 v1809
Tipp von IT-Pro vor 1 TagWindows Server3 Kommentare

Hi, nachdem der Windows Server 2019 und Windows 10 in der Version 1809 aufgrund von verschwinden von Dateien nach ...

CPU, RAM, Mainboards
Spectre Update Tool für ältere PCs
Information von sabines vor 1 TagCPU, RAM, Mainboards6 Kommentare

Mit Hilfe eines Tools wird der betreffende PC permanent von einem USB Stick gestartet, der ein passendes Microcode Update ...

Heiß diskutierte Inhalte
Windows Server
Lohnt sich eine Domäne für uns?
Frage von BowsetteWindows Server15 Kommentare

Hallo, ich arbeite in einem kleinen Unternehmen mit mehr als 5 und weniger als 10 Mitarbeitern, also Small Business ...

Java
Testautomatisierung
gelöst Frage von WPFORGEJava15 Kommentare

Hallo, nehmen wir an, es gibt eine Webseite mit einer Karte und einem Suchfeld. Nun wird in das Suchfeld ...

Viren und Trojaner
Office365 Trojaner Analyse
Frage von ZeppelinViren und Trojaner12 Kommentare

Liebe Community, ich wende mich an euch, um mehr über den Office365 Trojaner zu erfahren, welcher grade seine Runden ...

Exchange Server
PST Datei enthält weder Betreff noch Absender
gelöst Frage von SSamuelExchange Server10 Kommentare

Hallo zusammen, ich versuche aus einer wiederhergestellten Exchange (SBS2011) .EDB mit dem Programm "Kernel for Exchange von Nucleus" eine ...