excelnoob177
Goto Top

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. face-smile

Content-ID: 307350

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

Janekr77
Janekr77 16.06.2016 um 11:31:06 Uhr
Goto Top
Hallo ExeclNoob177,

verstehe ich es richtig, du hast einen Ordner mit 200 Worddokumenten und möchtest diese irgendwo anders kopieren und danach umbenennen?

Gruß

Janekr77
ExcelNoob177
ExcelNoob177 16.06.2016 um 11:42:47 Uhr
Goto Top
Danke für die Nachfrage.

Nein, ich habe es anders gemeint:

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.
Pjordorf
Pjordorf 16.06.2016 um 12:00:13 Uhr
Goto Top
Hallo,

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 kopieren

Gruß,
Peter
AnkhMorpork
AnkhMorpork 16.06.2016 aktualisiert um 12:33:08 Uhr
Goto Top
Vielleicht mit der Powershell (hier für Textdateien, 10mal kopieren):

$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.
batchnewbie
batchnewbie 16.06.2016 aktualisiert um 12:57:57 Uhr
Goto Top
Hi, meinst du das so??
@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 face-wink
Pjordorf
Pjordorf 16.06.2016 um 13:00:17 Uhr
Goto Top
Hallo,

Zitat von @batchnewbie:
Nachtrag: habe das mit Excel irgendwie überlesen face-wink
Excel beherscht aber einen Export um seine Namen aus seiner Liste in der users.txt einzupappen.

Gruß,
Peter
129413
129413 16.06.2016 aktualisiert um 13:23:57 Uhr
Goto Top
Bei einer einfachen Textliste die z.B. so aussieht (Namen o. Dateierweiterung):
Name1
Name2
Name3
...
..

Powershell:
$datei = 'C:\mydocument.docx'  
$targetfolder = 'C:\zielordner'  
$liste = 'C:\liste.txt'  
gc $liste | %{copy-item $datei -Destination "$targetfolder\$_.docx"}  
oder als Batch
@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"  
Oder mit einem VBA Makro, das direkt im Excel-File läuft.
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
ExcelNoob177
ExcelNoob177 16.06.2016 um 13:29:53 Uhr
Goto Top
Der Batch von skybird funktioniert klasse.

Danke auch an alle anderen. face-smile

Nur Interessehalber: Ist es eigentlich auch möglich den Inhalt der Dateien zu verändern? Z.B. Den Dateinamen in die Datei zu schreiben?
129413
129413 16.06.2016 aktualisiert um 13:42:02 Uhr
Goto Top
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.

Oder es gleich oben mit dem VBA Makro abfackeln.