Batchskript zum Datenbackup mit Ordnerstruktur
Hi,
habe noch ein Problem mit einem Skript.
Hier der Original Thread:
Biber hat mir damit schon sehr geholfen, allerdings hab ich noch Probleme damit. Das Skript will irgendwie nicht laufen.
Original:
- >for /f "delims=" %i in ('dir /a:d /s /b "D:\*old*"') do @echo "%~nxi"|find /i "old">nul && @xcopy /y "%~i\*.*" "x:\Archiv%~pi"
von mir verändert:
- >for /f "delims=" %i in ('dir /a:d /s /b "%laufwerk%\%filter%"') do @echo "%~nxi"|find /i "%filter%">nul && @xcopy /y "%~i\*.*" "x:\Archiv%~pi"
Ich habe noch die Variablen Laufwerk und Filter eingebaut, damit man auch andere Ordner wähln kann. Allerdings will es nicht so ganz.
habe noch ein Problem mit einem Skript.
Hier der Original Thread:
Biber hat mir damit schon sehr geholfen, allerdings hab ich noch Probleme damit. Das Skript will irgendwie nicht laufen.
Original:
- >for /f "delims=" %i in ('dir /a:d /s /b "D:\*old*"') do @echo "%~nxi"|find /i "old">nul && @xcopy /y "%~i\*.*" "x:\Archiv%~pi"
von mir verändert:
- >for /f "delims=" %i in ('dir /a:d /s /b "%laufwerk%\%filter%"') do @echo "%~nxi"|find /i "%filter%">nul && @xcopy /y "%~i\*.*" "x:\Archiv%~pi"
Ich habe noch die Variablen Laufwerk und Filter eingebaut, damit man auch andere Ordner wähln kann. Allerdings will es nicht so ganz.
Please also mark the comments that contributed to the solution of the article
Content-Key: 50250
Url: https://administrator.de/contentid/50250
Printed on: April 24, 2024 at 11:04 o'clock
9 Comments
Latest comment
Moin Netscape,
ich lege es mal als Batch an, dann wird es lesbarer (hoffe ich).
Ich fang mal mit der oberen Zeile an [am CMD-Prompt:]
... wäre als (formatierter) Batch-Oneliner mit einem ECHO zum Testen:
Wenn wir den noch umbauen, dass der als
- Parameter %1 Startlaufwerk/Startpfad annimmt und als
- Parameter %2 den Teilstring "old" (oder was auch immer), der im Ordnernamen enthalten sein soll
So weit, so ungetestet.
HTH
Biber
ich lege es mal als Batch an, dann wird es lesbarer (hoffe ich).
Ich fang mal mit der oberen Zeile an [am CMD-Prompt:]
for /f "delims=" %i in ('dir /a:d /s /b "D:\*old*"') do @echo "%~nxi"|find /i "old">nul && @Xcopy /y "%~i\*.*" "x:\Archiv%~pi"
::----------DoXcopyAllWithOld.bat
@for /f "delims=" %%i in ('dir /a:d /s /b "D:\*old*"') do @(
echo "%%~nxi"|find /i "old">nul && @<b>ECHO</b> Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi"
)
Wenn wir den noch umbauen, dass der als
- Parameter %1 Startlaufwerk/Startpfad annimmt und als
- Parameter %2 den Teilstring "old" (oder was auch immer), der im Ordnernamen enthalten sein soll
::----------DoXcopyWith.bat
@for /f "delims=" %%i in ('dir /a:d /s /b "%1\*%2*"') do @(
echo "%%~nxi"|find /i "%2">nul && @<b>ECHO</b> Xcopy /y "%%~i\*.*" "x:\Archiv%%~pi"
)
So weit, so ungetestet.
HTH
Biber
Moin NetScape,
Wenn der Ordner "D:\test\bla\blubb\old27" heißt:
"%%~i\*.*" --------> würde expandieren zu vollständigem Ordner-Pfad+"\*.*" i.e "D:\test\bla\blubb\old27\*.*"
"%%~dpi" --> würde expandieren zu D=Drive + p=Pfad des Ordner-Parent-Namens i.e "D:\test\bla\blubb"
Das Move demnach würde expandieren zu:
Move /y "%%~dpi" "x:\Archiv%%~pi\" ----------->
Move /y "D:\test\bla\blubb" "x:\Archiv\test\bla\blubb"
Richtiger wäre also:
Move /y "%%~dpnxi" "x:\Archiv%%~pnxi\" ----------->
Dieses Move würde expandieren zu:
Move /y "D:\test\bla\blubb\old27" "x:\Archiv\test\bla\blubb\old27"
Gruß
Biber
Wenn der Ordner "D:\test\bla\blubb\old27" heißt:
"%%~i\*.*" --------> würde expandieren zu vollständigem Ordner-Pfad+"\*.*" i.e "D:\test\bla\blubb\old27\*.*"
"%%~dpi" --> würde expandieren zu D=Drive + p=Pfad des Ordner-Parent-Namens i.e "D:\test\bla\blubb"
Das Move demnach würde expandieren zu:
Move /y "%%~dpi" "x:\Archiv%%~pi\" ----------->
Move /y "D:\test\bla\blubb" "x:\Archiv\test\bla\blubb"
Richtiger wäre also:
Move /y "%%~dpnxi" "x:\Archiv%%~pnxi\" ----------->
Dieses Move würde expandieren zu:
Move /y "D:\test\bla\blubb\old27" "x:\Archiv\test\bla\blubb\old27"
Gruß
Biber