danielg1974
Goto Top

Platzhalter für verschiedene Ordnernamen im Kopierpfad

Hallo.

Ich zocke leidenschaftlich gern Transport Fever 2.
Nur leider beklagen sich etliche Mods aus dem Steam Workshop über fehlende Dateien.
Obwohl ich abhängige Mods mit installiert habe.
Daher muss ich ab und an fehlende Dateien in ca. 250 Ordner kopieren.

Der Quell-Ordner ist meist der Gleiche.
Aber die Ziel-Ordner unterscheiden sich im Pfad immer um den Namen (hier Zahlen) der Workshop-ID.
Kann ich diese Nummer durch einen Platzhalter ersetzen?

Beim Befehl copy funktioniert das mit * oder ? leider nicht.

Danke für jede Hilfestellung.

Gruß Daniel

Content-ID: 9443794286

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

13034433319
13034433319 19.06.2024 aktualisiert um 22:41:05 Uhr
Goto Top
Powershell
$quelle = "d:\quellordner\*.txt"  
$zielordner = "f:\ziel\Workshop_*"  
foreach($ordner in Get-ChildItem -Path $zielordner -Directory){
     Copy-Item -Path $quelle -Destination $ordner.Fullname -verbose
}
Batch
@echo off
set "quelle=d:\quellordner\*.txt"  
set "zielordner=F:\Ziel\Workshop_*"  
for /d %%a in ("%zielordner%") do copy "%quelle%" "%%~a\"  
Gruß
DanielG1974
DanielG1974 20.06.2024 um 00:41:39 Uhr
Goto Top
Danke für die Antwort und beiden Skripte.
Funktioniert das ganze auch bei dieser Konstellation?
Quelle: C:\Temp\gaiterutils.lua
Ziel: D:\Steam\steamapps\workshop\content\1066780\<sich ändernder Ordnernamen>\res\scripts
13034433319
Lösung 13034433319 20.06.2024 aktualisiert um 07:32:22 Uhr
Goto Top
Zitat von @DanielG1974:

Danke für die Antwort und beiden Skripte.
Funktioniert das ganze auch bei dieser Konstellation?
Quelle: C:\Temp\gaiterutils.lua
Ziel: D:\Steam\steamapps\workshop\content\1066780\<sich ändernder Ordnernamen>\res\scripts

Bei der PS Variante ja die kann so bleiben, einfach nur die Pfade austauschen und den Platzerhalter mit Sternchen setzen, die Batch dagegen muss dann aber minimal so angepasst werden
@echo off
set "quelle=C:\Temp\gaiterutils.lua"    
set "zielordner=D:\Steam\steamapps\workshop\content\1066780\*"    
for /d %%a in ("%zielordner%") do copy "%quelle%" "%%~a\res\scripts\"    
DanielG1974
DanielG1974 20.06.2024 um 10:57:40 Uhr
Goto Top
Vielen vielen vielen Dank!
Powershell hat genauso funktioniert wie ich es brauche!

Danke!

Gruß
Daniel
DanielG1974
DanielG1974 20.06.2024 um 12:10:20 Uhr
Goto Top
$quelle = "d:\quellordner\*.txt"    
$zielordner = "f:\ziel\Workshop_*"    
foreach($ordner in Get-ChildItem -Path $zielordner -Directory){
     Copy-Item -Path $quelle -Destination $ordner.Fullname -verbose -Recurse
}

Ich habe noch -Recurse angehängt um Unterordner und deren Inhalt in einem Rutsch mit zu kopieren.

Gruß Daniel
13034433319
13034433319 20.06.2024 aktualisiert um 12:20:07 Uhr
Goto Top
Klar kannst du natürlich machen, stand ja am Anfang nicht in deiner Anforderung. Funktioniert aber nur wenn du den Filter für die Quelle richtig setzt bzw. dort einen Ordner einsetzt, ein "*.txt" wird wohl keine Unterordner erfassen.
DanielG1974
DanielG1974 20.06.2024 um 13:27:45 Uhr
Goto Top
Hat alles so funktioniert, wie es soll.
Vielen Dank nochmal an Dich!

Gruß
Daniel