Jump to content

Dateien mit selben Namen in den ersten 5 Buchstaben in neuen Ordner verschieben


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,

wir haben einen Ordner X:\Rechnungen.

In diesem Ordner befinden sich Rechnungen.

Die Rechnungen haben folgenden Dateinamen:  

2321540-RGS-1718-45678 (.pdf)

Es soll nun für jede Datei die im Dateinamen die ersten 7 Zeichen gleich hat ein eigener Ordner erstellt werden und danach in diesem Ordner verschoben werden.

Ich habe im Google etwas gefunden. Das Skript funktoniert aber nur auf die letzten Zeichen:

https://superuser.com/questions/1138283/batch-script-for-moving-files-to-the-same-name-folder

 

Ich bin kein Profi in Skripten und eher in der Systemadministration tätig.

 

Vielen Dank im Voraus für eure Hilfe.

LG Stoney

 

Link zu diesem Kommentar

Moin,

 

nunja, ein fertiges Script wird dir keiner zusammenbasteln.

Ein wenig testen kannst du sicherlich auch.

 

Im Link wird ja die Stelle schon beschrieben:

 

"!foldername:~0,-3!" strips the last three characters from foldername

 

Versuchs doch einfach mal ohne das Minus (-) und mit deinen 7 Zeichen:

"!foldername:~0,7!"

Ungetestet, sollte aber in die richtige Richtung führen.

 

Gruß Sebastian

Link zu diesem Kommentar

Hi,

 

also bei mir funktioniert es so....

Was macht er denn bei dir, wenn du die Batch ausführst?

 

LG 

TC

@echo off
setlocal enabledelayedexpansion
set folderpath=c:\test
for %%f in (%folderpath%\*.*) do (
  set "foldername=%%~nf"
  md "!foldername:~0,7!" >nul 7>&1
  move "%%f" "!foldername:~0,7!"
) 
bearbeitet von TheCracked
Link zu diesem Kommentar

Hi,

 

Ich bin kein Profi in Skripten und eher in der Systemadministration tätig.

 

du solltest dich so langsam mal mit der PowerShell auseinandersetzen, sofern du häufig mit Windows Servern arbeitest. Heute wird schon sehr viel gescriptet. Weniger dürfte es in den nächsten Jahren sicherlich nicht werden.

So als Quick'n'Dirty Ansatz:

foreach ( $Rechnung in Get-ChildItem -Path X:\Rechnungen -File ) {
	if (!(Test-Path -Path $Rechnung.FullName.Substring(0,19))) {
		New-Item -ItemType Directory -Path $Rechnung.FullName.Substring(0,19) 
	}
	Move-Item $Rechnung.FullName $Rechnung.FullName.Substring(0,19)
}

Gruß

Jan

Link zu diesem Kommentar
  • 3 Jahre später...

Ich habe eigentlich das gleiche Problem.

 

Ich möchte Dateien die am Namensanfang gleich sind bis in einen neu zu erzeugenden Ordner verschieben.

Beispiel:

Auto1

Auto2

Auto3

Sollen alle in Ordner Auto verschoben werden und dieser automatisch neu erzeugt werden.

 

Mit den Scripten oben kriege ich keine Ergebnisse.

Wahrscheinlich mach ich bei der Anpassung etwas verkehrt.

Wie würde das aussehen wenn der Ursprungsordner d:\Test heißt und die neuen Ordner in diesem Ordner erzeugt werden sollen?

 

Vielen Dank.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!
Gast
Dieses Thema wurde für weitere Antworten geschlossen.
×
×
  • Neu erstellen...