Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
stonson25

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

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

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×