backup Batch Pfad hat Leerzeichen
wie kann ich einen Pfad in einer Batchdatei änder
Hallo
ich habe ein kleines Backuptool gebaut welches aus einer Externen Datei die zu sichernden Pfade ausliest und dann nacheinander abarbeitet das geht auch alles solange gut bis ein Pfad mit einem Leerzeichen kommt.
nun meine Frage gibt es eine Möglichkeit den Pfad von z.B.: C:\Dokumente und Einstellungen\ich\Application Data\Microsoft automatisch in
C:\Dokume~1\Herzberg\Applic~1\Microsoft umzuwandeln wenn ja wie soll das gehen.
[Edit 15.06.2007 11:44]
Ich habe mir erlaubt, den Batchschnipsel in einen Codeblock zu setzen. Danke...
Dani
(Moderator)
Hallo
ich habe ein kleines Backuptool gebaut welches aus einer Externen Datei die zu sichernden Pfade ausliest und dann nacheinander abarbeitet das geht auch alles solange gut bis ein Pfad mit einem Leerzeichen kommt.
nun meine Frage gibt es eine Möglichkeit den Pfad von z.B.: C:\Dokumente und Einstellungen\ich\Application Data\Microsoft automatisch in
C:\Dokume~1\Herzberg\Applic~1\Microsoft umzuwandeln wenn ja wie soll das gehen.
set ziel="c:\SICHERUNG\"
REM ---Der Ort der Quelldatei wird aus der quellen.txt glesen
FOR /f "delims=" %%f IN (quellen.txt) DO call :loop "%%f"
goto ende
ANGEBEN!!!-----------------------------------------------------------------------
:loop
set von="%~1"
set ordner="%~1"
set ordner=%ordner::=%
REM --------------------------------------- Ausgeben der Befehlsliste
REM --------------------------------------- Name des Sicherungsordner wird erstellt
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set datum=%tag%.%monat%.%jahr%
set nach="%ziel%%datum%\%ordner%\"
REM --------------------------------------- Logdatei wird geschrieben
echo Starte Datensicherung am %datum% um %time% von %von% nach %nach% >>%windir%\backup.log >>%ziel%\backup.log
REM --------------------------------------- Daten werden Kopiert
xcopy %von% %nach% /S /E /C /H /O /R /Y /D /V
Ich habe mir erlaubt, den Batchschnipsel in einen Codeblock zu setzen. Danke...
Dani
(Moderator)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61442
Url: https://administrator.de/contentid/61442
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo meisterigel!
Um das zu verifizieren:
In Deiner "quellen.txt" steht der existierende Pfad "C:\Dokumente und Einstellungen\Herzberg\Application Data\Microsoft". In Deinem Batch hast Du set von="%~1" durch set "von=%~s1" ersetzt, also etwa so:
(das echo nur zur sofortigen Kontrolle).
Du bekommst damit nicht den ShortName?
Grüße
bastla
Um das zu verifizieren:
In Deiner "quellen.txt" steht der existierende Pfad "C:\Dokumente und Einstellungen\Herzberg\Application Data\Microsoft". In Deinem Batch hast Du set von="%~1" durch set "von=%~s1" ersetzt, also etwa so:
FOR /f "delims=" %%f IN (quellen.txt) DO call :loop "%%f"
goto ende
:loop
set "von=%~s1"
echo %von%
Du bekommst damit nicht den ShortName?
Grüße
bastla
... aber vielleicht gleich auch ein Alternativvorschlag:
Das echo steht zum Testen drinnen.
Geändert habe ich insbesondere das Setzen der Anführungszeichen sowie die Verwendung der "\", etwa zwischen %ziel% und %datum%. (Sinnvoller fände ich übrigens ein Datum der Art %jahr%-%monat%-%tag%.)
Grüße
bastla
@echo off & setlocal
set "ziel=c:\SICHERUNG"
FOR /f "delims=" %%f IN (quellen.txt) DO call :loop "%%f"
goto :eof
:loop
set "von=%~1"
set "ordner=%von::=%"
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set datum=%tag%.%monat%.%jahr%
set "nach=%ziel%\%datum%\%ordner%"
echo xcopy "%von%" "%nach%\" /S /E /C /H /O /R /Y /D /V
Geändert habe ich insbesondere das Setzen der Anführungszeichen sowie die Verwendung der "\", etwa zwischen %ziel% und %datum%. (Sinnvoller fände ich übrigens ein Datum der Art %jahr%-%monat%-%tag%.)
Grüße
bastla