Jump to content

Batch Datei: PDF Dateien verschieben, umbenennen und löschen


Direkt zur Lösung Gelöst von F0rcehunter,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich versuche mich gerade an einer Batch, die folgende Arbeitsschritte durchführen soll:

 

In dem Ordner "C:\Produktdaten_zur_Uebernahme" befinden sich PDF Dateien. Jede PDF Datei hat eine 6 Stellige Nummer vorweg. Es soll nun pro unterschiedlicher PDF Datei (Unterscheidung anhand der Nummer) ein Ordner erstellt werden, der so heißt wie die ersten sechs Stellen der PDF Datei. In diesen Ordner soll dann die entsprechende Datei kopiert werden (Falls es mehrere mit der gleichen Nummer gibt, dann diese ebenfalls). Erstellt werden sollen diese Ordner unter dem Pfad "C:\Produktdaten_sammeln". Im Anschluss soll die Quell PDF gelöscht werden. Könnte also auch direkt mit move gemacht werden.

 

Ich hoffe, dass Ihr mir helfen könnt!

 

Vielen Dank vorweg!  :)

 

F0rcehunter

Link zu diesem Kommentar

Folgendes hatte ich zuvor gescripted:

@echo PDF Datei Verschiebung

set "Quelle=L:\Produktdaten_zur_Uebernahme\"
set "Typ=pdf" 
set "Ziel=L:\Produktdaten_sammeln\" 

pause

for %%i in ("%Quelle%\*.%Typ%") do ( 
	set "Nummer=%Quelle:~,6%"
	set NeuerOrdner=%Nummer%
	md "[%Ziel%]\%NeuerOrdner%"
	move ("%Quelle%\*.%Typ%") %Ziel%
	)

Wie gesagt, sind das meine ersten Versuche.

Link zu diesem Kommentar

@Nils: Vielen Dank für deinen Tipp. Denke ohne die Delayed Expansion wirds nicht laufen.

 

 

Ich habe nun noch einiges rumprobiert, finde aber keinen Fehler. Wenn ich das Script ausführe, passiert nichts. Gehe ich das Thema Schrittweise an, dann schaffe ich das Kopieren von Dateien und das Erschaffen neuer Ordner. Nicht aber die ersten 6 Zeichen einer PDF zu kopieren und diese als Ordnernamen zu verwenden.

 

Woran es ebenfalls scheitert ist die FOR Schleife. Sobald ich die funktionierenden Teile des Kopiervorgangs und der Ordnererstellung in die FOR Schleife bringe, funktionieren diese nicht mehr.

 

Aktueller Script Versuch ist nun folgender:

@ECHO OFF

REM Setzen der Variablen Quelle und Ziel

SET Quelle=L:\Produktdaten_zur_Uebernahme\*.pdf
SET Ziel=L:\Produktdaten_sammeln\

REM Aktivieren der Delayed Expansion

SETLOCAL ENABLEDELAYEDEXPANSION

FOR "usebackq tokens=*" %%i IN (%Quelle%) DO (

	REM Kopieren der ersten 6 Zeichen eines PDFs
	set "Nummer=%Quelle%:~,6%"

	REM Setzen der Variablen zur Ordner Benennung
	set NeuerOrdner=%Nummer%

	REM Erstellen eines Ordners mit Benennung durch Variable NeuerOrdner
	mkdir "%Ziel%\%NeuerOrdner%"

	REM Verschiebung der PDF Datei in den neuen Ordner
	move %Quelle% %Ziel%
	)
Link zu diesem Kommentar
  • Beste Lösung

Hallo,

 

anbei die funktionierende Lösung.

@echo off &setlocal enabledelayedexpansion 
SET "Quelle=M:\420_stav\Produktdaten_zur_Uebernahme\*.pdf" 
SET "Ziel=M:\420_stav\Produktdaten_sammeln"
 
FOR %%i IN ("%Quelle%") DO (
	set "name=%%~ni"
	set "newfolder=%ziel%\!name:~0,6!"
	if not exist "!newfolder!" md "!newfolder!" >nul
	move "%%i" "!newfolder!"
)

Ich bedanke mich für Eure Unterstützung.

 

Gruß

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...