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-Key: 9443794286

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

Printed on: July 14, 2024 at 16:07 o'clock

Mitglied: 13034433319
13034433319 Jun 19, 2024 updated at 20:41:05 (UTC)
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ß
Member: DanielG1974
DanielG1974 Jun 19, 2024 at 22:41:39 (UTC)
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
Mitglied: 13034433319
Solution 13034433319 Jun 20, 2024 updated at 05:32:22 (UTC)
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\"    
Member: DanielG1974
DanielG1974 Jun 20, 2024 at 08:57:40 (UTC)
Goto Top
Vielen vielen vielen Dank!
Powershell hat genauso funktioniert wie ich es brauche!

Danke!

Gruß
Daniel
Member: DanielG1974
DanielG1974 Jun 20, 2024 at 10:10:20 (UTC)
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
Mitglied: 13034433319
13034433319 Jun 20, 2024 updated at 10:20:07 (UTC)
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.
Member: DanielG1974
DanielG1974 Jun 20, 2024 at 11:27:45 (UTC)
Goto Top
Hat alles so funktioniert, wie es soll.
Vielen Dank nochmal an Dich!

Gruß
Daniel