Zum Inhalt wechseln


Foto

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


  • Bitte melde dich an um zu Antworten
4 Antworten in diesem Thema

#1 stonson25

stonson25

    Senior Member

  • 653 Beiträge

 

Geschrieben 05. Juli 2017 - 07:32

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.co...ame-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

 



#2 Sanches

Sanches

    Newbie

  • 431 Beiträge

 

Geschrieben 05. Juli 2017 - 07:56

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



#3 TheCracked

TheCracked

    Board Veteran

  • 807 Beiträge

 

Geschrieben 05. Juli 2017 - 08:05

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, 05. Juli 2017 - 08:11.


#4 testperson

testperson

    Board Veteran

  • 4.602 Beiträge

 

Geschrieben 05. Juli 2017 - 08:26

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


Good morning, that's a nice TNETENNBA!

#5 stonson25

stonson25

    Senior Member

  • 653 Beiträge

 

Geschrieben 05. Juli 2017 - 09:28

Hallo,

@Sanches: ja das war genau das was ich gbraucht habe.

@Jan: das werde ich mir zu Herzen nehmen

 

Vielen Dank euch allen!

LG Stoney