Jump to content

Batch um Dateien in Ordner mit Teil des Dateinamen zu verschieben


Go to solution Solved by BOfH_666,

Recommended Posts

Hallo Forengemeinde,

 

ich bräuchte hilfe bei einem Batch:

 

Der Batch soll Dateien in den zugehörigen Ordner verschieben.

 

Die Dateien sind in folgendem Format:

LST_102021_MaxMustermann_Zeitstempel.pdf

LST_102021_MariaMustermann_Zeitstempel.pdf

 

Nun soll der Batch die Dateien wie folgt verschieben:

 

LST_102021_MaxMustermann_Zeitstempel.pdf -> MaxMustermann

LST_102021_MariaMustermann_Zeitstempel.pdf -> MariaMustermann

 

Die Dateien sollen also quasi über den Namen zugeordnet werden. Der Text vor dem Namen ist mehr oder weniger immer gleich (nur das Monat/Jahr ändern sich).

 

Ich habe nun schon folgendes gefunden, ich weiß allerdings nicht wie ich das adaptieren kann.

 

@echo off

setlocal

set "srcdir=Quellverzeichnis"
set "destdir=Zielverzeichnis (Dort wo die Ordner sind bzw. angelegt werden)"


for /f "tokens=1,*" %%i in ('dir "%srcdir%" /b /-p /a:-d /o:gne') do (
  if not exist "%destdir%\%%i" md "%destdir%\%%i"
  move "%srcdir%\%%i %%j" "%destdir%\%%i"

    
  echo "%destdir%\%%i\%%j"
  echo.
)

endlocal

 

Hättet ihr da vielleicht einen Vorschlag für mich?

 

Liebe Grüße

Link to comment
  • Solution

Wo buddelt ihr nur immer wieder so alten Sch**ß aus ... nimm Powershell:

$Quellverzeichnis = 'C:\sample\Quelle'
$Zielverzeichnis = 'C:\sample\Ziel'

Get-ChildItem -Path $Quellverzeichnis -Filter *.pdf -File |
    ForEach-Object{
        $Name = ($_.BaseName -split '_')[2]
        $Ziel = Join-Path -Path $Zielverzeichnis -ChildPath $Name
        if (-not (Test-Path -Path $Ziel)) {
            New-Item -Path $Ziel -ItemType Directory | Out-Null
        }
        Move-Item -Path $_.FullName -Destination $Ziel
    }

 

Link to comment

Hallo @BOfH_666,

 

Erstmal danke für deine Antwort, ich habe es nun getestet und bekomme aber folgende Fehlermeldung:

 

 

Get-ChildItem-Path : Die Benennung "Get-ChildItem-Path" wurde nicht als Name eines Cmdlet, einer Funktion, einer
Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad
korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In BatchTest.ps1:4 Zeichen:1
+ Get-ChildItem-Path $Quellverzeichnis -Filter*.pdf -File|
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-ChildItem-Path:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

Könntest du mir da noch einmal kurz helfen?

 

Sorry, hab mit PowerShell bisher nichts zu tun gehabt :(

Edited by Prezi
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...