Jump to content

Dateien mit bestimmten Dateiname auslesen, verarbeiten und unter neuen namen speichern


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

Recommended Posts

Posted (edited)

Hallo Zusammen,


ich kenne mich mit PowerShell nicht wirklich aus.

Folgende soll passieren bzw. funktioniert soweit gut

PDF Dateien werden zur weiteren Verarbeitung in TIFF konvertiert (GHostscript) und in bestimmten Ziel abgespeichert.

 

Das PDF selbst wird dann verschoben, soweit ganz gut.

 

Dateinamen sind aktuell z.b. 1234567_name_vorname.pdf
Sobald die Bearbeitung fertig ist, erhält diese ein x vor dem Namen x1234567_name_vorname.pdf
und soll in ein tiff konvertiert werden. Nun soll aber folgendes passieren wo ich nicht weiter komme

-> die zu erstellende TIFF Datei soll einen bestimmten Aufbau des Namen erhalten.

Datum des letzten Zugriffs des PDF _ die 7 Stellige Nummer _ das Wort "prüfung" _ name_vorname.tif
z.b. 09072020_1234567_prüfung_name_vorname.tiff

 

bisher sieht das Script wie folgt aus.

es werden alle PDF´s des Verzeichnis als TIFF erstellt und verschoben.
vielleicht kann mir hier jemand helfen.

 

#Pfad Ghostscript
$tool = "C:\Sicherung_Stick\Tools\ghostscript\bin\gswin64c.exe"


#Ausleseverzeichnis PDF
$inputDir = "X:\513214\7. Scan Posteingang\"

#Pfad für erledigt
$outputDirPDF = "X:\513214\7. Scan Posteingang\ERLEDIGT\"

#Pfad für TIFF
$outputDir = "X:\513214\TIFF zum einlesen\"

$pdfs = get-childitem $inputDir -recurse | where name -like "x*.pdf"

foreach($pdf in $pdfs)
{
    $tif = $outputDir + $pdf.BaseName + ".tif"
    $pdf_to_move = $inputDir + $pdf.BaseName + ".pdf"
    if(test-path $tif)
    {
        "tif file already exists " + $tif
    }
    else       
    {  
        'Processing ' + $pdf.Name       
        $param = "-sOutputFile=$tif"
        & $tool -q -sPageList=1 -dNOPAUSE -sDEVICE=tiffg4 $param -r600 $pdf.FullName -c quit
    }
    # Datei verschieben
    Move-Item $pdf_to_move $outputDirPDF
    }
EXIT


 

Edited by thomas1972
Posted (edited)

Thomas,

willkommen im MCSEboard.

Wenn ich alles richtig verstanden habe, sollte es so funktionieren:

$tool = 
    'C:\Sicherung_Stick\Tools\ghostscript\bin\gswin64c.exe'
$inputDir = 
    'X:\513214\7. Scan Posteingang'
$outputDirPDF = 
    'X:\513214\7. Scan Posteingang\ERLEDIGT'
$outputDir = 
    'X:\513214\TIFF zum einlesen'
$pdfs = 
    Get-ChildItem -Path $inputDir -Recurse -Filter 'x*.pdf'

foreach ($pdf in $pdfs) {
    $splittedBaseName = 
        $pdf.BaseName -split '_'
    $tifBaseName = 
        $pdf.LastWriteTime.ToString('yyyyMMdd') + 
        '_' + 
        $splittedBaseName[0].TrimStart('x') + 
        '_prüfung_' + 
        ($splittedBaseName[1..2] -join '_')
    $tif = 
        Join-Path -Path $outputDir -ChildPath ($tifBaseName + '.tif')
    $pdf_to_move = $inputDir + $pdf.BaseName + ".pdf"


    if (Test-Path -Path $tif) {
        "tif file already exists $tif"
    }
    else {  
        "Processing  $($pdf.Name)"       
        $param = "-sOutputFile=$tif"
        & $tool -q -sPageList=1 -dNOPAUSE -sDEVICE=tiffg4 $param -r600 $pdf.FullName -c quit
    }
    Move-Item $pdf_to_move $outputDirPDF
}

 

Edited by BOfH_666
Posted

Moin,

 

fernab der Funktion erlaube ich mir die Off-Topic-Anmerkung, dass die Vergangenheit (bzw. genauer das Past Participle) von "split" ebenfalls "split" ist, nicht "splitted". ;-)

 

Gruß, Nils

 

  • Thanks 1
Posted
vor 51 Minuten schrieb NilsK:

fernab der Funktion erlaube ich mir die Off-Topic-Anmerkung, dass die Vergangenheit (bzw. genauer das Past Participle) von "split" ebenfalls "split" ist, nicht "splitted". ;-)

Ich werde das demnächst "eindeutschen". Dann wird die Intention noch deutlicher.  :aetsch2:

  • Like 1
  • Haha 1
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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