waholin
Goto Top

Batch Dateien in anderes Unterverzeichnis verschieben

Hallo,
bin dank Eurer Hilfe fast fertig mit meinem Batch. Dieser funktioniert auch:

@echo off & setlocal

set "Quelle=W:\Programmierung\Batch"        
set "Typ=pdf"    
set "SearchKey=Kontoauszug"    

for %%a in ("%quelle%\Data\*%Searchkey%*.%typ%") do (    
    for /f "tokens=2 delims=_" %%b in ("%%~na") do (    
        if not exist "%quelle%\%Searchkey%\%%b" md "%quelle%\%Searchkey%\%%b" >nul    
        move "%%a" "%quelle%\%Searchkey%\%%b\"    
    )
)

Jetzt möchte ich aber diesen auf der Originalumgebung laufen lassen; dort funktioniert der Übertrag in ein anderes Verzeichnis nicht richtig (W:\Dokumente\Finanzen)
liegt es am übergeordneten Verzeichnis?

@echo off & setlocal

set "Quelle=W:\Programmierung\Batch"        
set "Ziel=W:\Dokumente\Finanzen"        
set "Typ=pdf"    
set "SearchKey=Kontoauszug"    

for %%a in ("%quelle%\Data\*%Searchkey%*.%typ%") do (    
    for /f "tokens=2 delims=_" %%b in ("%%~na") do (    
        if not exist "%ziel%\%Searchkey%\%%b" md "%ziel%\%Searchkey%\%%b" >nul    
        move "%%a" "%ziel%\%Searchkey%\%%b\"    
    )
)

Weiß mir jemand Rat?
LG waholin

Content-ID: 668113

Url: https://administrator.de/contentid/668113

Ausgedruckt am: 19.11.2024 um 00:11 Uhr

mayho33
Lösung mayho33 13.09.2024 um 20:47:23 Uhr
Goto Top
Hi,

Meistens liegt es einfach daran, dass sich von Maschiene zu Maschine Pfade ändern kännen. Darum ist es immer eine schlechte Idee Pfade hard coded einzubauen face-wink

Wenn das Script im selben Verzeichnis oder darüber liegt, kannst den Script-Path immer mit...
"%~dp0deineBatch.cmd"  
Oder
"%~dp0Ordner1\Ordner2\...\"  
...festlegen. Achtung! Ja! Nach %~dp0 ist wirklich kein Backslash.


Das andere ist die Frage warum du dafür Batch einsetzen willst, wenn du auf jeder Windows-Maschine eh schon Powershell am Start hast? Dann wäre das nämlich maximal ein 3-Zeiler.

Grüße