Batch: Word Datei kopieren und umbennen
Hallo Gemeinde,
ich möchte mir die Arbeit sparen 200 mal ein Worddokument zu kopieren und umzubenennen. Die Namen habe ich in einer Excel-Liste, ich kann diese aber natürlich in ein Batch packen.
Habe allerdings nur rudimentäre Kenntnisse was Batchverarbeitungen angeht. Könnt ihr mir hier helfen und den Code vorgeben?
Danke.
ich möchte mir die Arbeit sparen 200 mal ein Worddokument zu kopieren und umzubenennen. Die Namen habe ich in einer Excel-Liste, ich kann diese aber natürlich in ein Batch packen.
Habe allerdings nur rudimentäre Kenntnisse was Batchverarbeitungen angeht. Könnt ihr mir hier helfen und den Code vorgeben?
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 307350
Url: https://administrator.de/contentid/307350
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo,
Gruß,
Peter
Zitat von @ExcelNoob177:
Ich habe einen Ordner mit 1 Datei. Und im gleich Ordner muss die Datei 199mal kopiert werden. Anschließend muss jede Kopie einen anderen Namen bekommen.
Hier im Forum gibt es sehr viele Batches und vorlagen. Villeicht dies? Datei per Batch in Ordner mit sich ständig änderndem Namen kopierenIch habe einen Ordner mit 1 Datei. Und im gleich Ordner muss die Datei 199mal kopiert werden. Anschließend muss jede Kopie einen anderen Namen bekommen.
Gruß,
Peter
Vielleicht mit der Powershell (hier für Textdateien, 10mal kopieren):
<EDIT>
Ruder zurück - habe die Excel-Datei überlesen!
Da muss man etwas anders ran.
$BasicName="File_"
$Datei = Get-ChildItem -path "*.txt" | Where-Object {!$_.PSIsContainer}
For ($i=1;$i -lt 10;$i++) {
$AktuellerName=$BasicName+"{0:000}" -f $i+$Datei.Extension # "{0:000}" -f $i --> Index i wird mit führenden Nullen (hier 3) ausgegeben und in einen String konvertiert
Copy-Item -Path $Datei.Fullname $AktuellerName # $Datei enthält Dateiname mit vollen Pfad, $AktuellerName nur den neuen Dateinamen!
}
<EDIT>
Ruder zurück - habe die Excel-Datei überlesen!
Da muss man etwas anders ran.
Hi, meinst du das so??
Nachtrag: habe das mit Excel irgendwie überlesen
@echo off & setlocal EnableDelayedExpansion
cls
:: Datei und Anzahl entsprechend anpassen
set "Datei=users.txt"
set "Anzahl=5"
for /f "delims=" %%i in ('dir /b "%Datei%"') do (
set "DateiName=%%~ni"
echo DateiName: !DateiName!
for /l %%n in (1,1,%Anzahl%) do (
set cnt=%%n
echo copy "%%i" "!DateiName!_!cnt!%%~xi"
)
)
pause
Nachtrag: habe das mit Excel irgendwie überlesen
Hallo,
Excel beherscht aber einen Export um seine Namen aus seiner Liste in der users.txt einzupappen.
Gruß,
Peter
Excel beherscht aber einen Export um seine Namen aus seiner Liste in der users.txt einzupappen.
Gruß,
Peter
Bei einer einfachen Textliste die z.B. so aussieht (Namen o. Dateierweiterung):
Powershell:
oder als Batch
Oder mit einem VBA Makro, das direkt im Excel-File läuft.
Ausgangslage: Namen der Dateien (ohne Erweiterung) stehen im Bereich A1:A200
Bei allen Varianten natürlich Pfad zur Datei, Zielordner für die Dateien anpassen.
Gruß skybird
Name1
Name2
Name3
...
..
Powershell:
$datei = 'C:\mydocument.docx'
$targetfolder = 'C:\zielordner'
$liste = 'C:\liste.txt'
gc $liste | %{copy-item $datei -Destination "$targetfolder\$_.docx"}
@echo off
set "datei=C:\mydocument.docx"
set "targetfolder=C:\zielordner"
set "liste=C:\liste.txt"
for /f "usebackq delims=" %%a in ("%liste%") do copy "%datei%" "%targetfolder%\%%a.docx"
Ausgangslage: Namen der Dateien (ohne Erweiterung) stehen im Bereich A1:A200
Sub DokumentKopieren()
Const DATEI = "C:\mydocument.docx"
Const TARGETFOLDER = "C:\zielordner"
for each cell in Sheets(1).Range("A1:A200")
FileCopy DATEI, TARGETFOLDER & "\" & cell.Value & ".docx"
next
End Sub
Bei allen Varianten natürlich Pfad zur Datei, Zielordner für die Dateien anpassen.
Gruß skybird
Zitat von @ExcelNoob177:
Nur Interessehalber: Ist es eigentlich auch möglich den Inhalt der Dateien zu verändern? Z.B. Den Dateinamen in die Datei zu schreiben?
Ja, per VBS oder PS kein Problem.Per Batch müsstest du ein PS oder VBS Skript ausführen lassen.Nur Interessehalber: Ist es eigentlich auch möglich den Inhalt der Dateien zu verändern? Z.B. Den Dateinamen in die Datei zu schreiben?
Oder es gleich oben mit dem VBA Makro abfackeln.