Inhalt eines Ordners in eine TXT-datei schreiben und den namen um 6 Stellen kürzen
Hallo
ich bin neu hier und auch nu im folgendem Thema.
Ich muss eine x-beliebige Anzahl von Dateien in eine TXT-Datei schreiben.
Also in eine TXT-Datei müssen die Namen der Dateien (z.B. Jar, COB, JCL usw...) aus einem bestimmten Verzeichnis eingetragen werden.
Die Namen der Dateien in dem Verzeichnis, die in die TXT-Datei eingetragen werden, müssen auf 6 Stellen gekürzt werden.
Beispiel:
Original -> 12345678.cpy
Umbenannt -> 123456.cpy (dieser gekürzte Name soll in der TXT-Datei stehen)
Das soll dann für alle *.cpy in dem Verzeichnis erfolgen.
Es soll nichts gelöscht werden im Verzeichnis und wenn eine Datei z.B.: nur 5 Stellen (als) name hat, soll diese 5 stellenen nur eingetragen werden (Bsp.: 12345.cpy)
Leider hatte ich noch nicht mit Batch zu tun.
Wenn jemand eine Idee für Powershell hat, bin ich auch froh bzw. ist das ok.
Aber ich würde mich sehr freuen wenn ich hilfe bekommen könnte.
Leider, wie schon erwähnt, habe ich bis jetzt noch nichts mit Programierung o. Skripten zu tun.
Habe lange im Netzt nach einer Lösung gesucht, aber nichts gefunden...
Danke Euch
ich bin neu hier und auch nu im folgendem Thema.
Ich muss eine x-beliebige Anzahl von Dateien in eine TXT-Datei schreiben.
Also in eine TXT-Datei müssen die Namen der Dateien (z.B. Jar, COB, JCL usw...) aus einem bestimmten Verzeichnis eingetragen werden.
Die Namen der Dateien in dem Verzeichnis, die in die TXT-Datei eingetragen werden, müssen auf 6 Stellen gekürzt werden.
Beispiel:
Original -> 12345678.cpy
Umbenannt -> 123456.cpy (dieser gekürzte Name soll in der TXT-Datei stehen)
Das soll dann für alle *.cpy in dem Verzeichnis erfolgen.
Es soll nichts gelöscht werden im Verzeichnis und wenn eine Datei z.B.: nur 5 Stellen (als) name hat, soll diese 5 stellenen nur eingetragen werden (Bsp.: 12345.cpy)
Leider hatte ich noch nicht mit Batch zu tun.
Wenn jemand eine Idee für Powershell hat, bin ich auch froh bzw. ist das ok.
Aber ich würde mich sehr freuen wenn ich hilfe bekommen könnte.
Leider, wie schon erwähnt, habe ich bis jetzt noch nichts mit Programierung o. Skripten zu tun.
Habe lange im Netzt nach einer Lösung gesucht, aber nichts gefunden...
Danke Euch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 512730
Url: https://administrator.de/contentid/512730
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
Und was soll passieren, wenn dadurch Dubletten entstehen? Beispiel:
12345678.cpy -> 123456.cpy
12345699.cpy -> 123456.cpy
Liebe Grüße
Erik
Zitat von @ZTommy:
Die Namen der Dateien in dem Verzeichnis, die in die TXT-Datei eingetragen werden, müssen auf 6 Stellen gekürzt werden.
Die Namen der Dateien in dem Verzeichnis, die in die TXT-Datei eingetragen werden, müssen auf 6 Stellen gekürzt werden.
Und was soll passieren, wenn dadurch Dubletten entstehen? Beispiel:
12345678.cpy -> 123456.cpy
12345699.cpy -> 123456.cpy
Liebe Grüße
Erik
Servus @ZTommy ,
Grüße Uwe
Leider hatte ich noch nicht mit Batch zu tun.
Wenn jemand eine Idee für Powershell hat, bin ich auch froh bzw. ist das ok.
Na dann hast du jetzt die Qual der Wahl:Wenn jemand eine Idee für Powershell hat, bin ich auch froh bzw. ist das ok.
Batch
@echo off & setlocal EnableDelayedExpansion
set "folder=D:\Daten"
set "outfile=D:\Daten\ergebnis.txt"
>"%outfile%" (for %%a in ("%folder%\*.cpy") do (set "basename=%%~na" &echo(%%~nxa !basename:~0,6!%%~xa))
Powershell
$ordner = 'D:\Daten'
$ausgabe = 'D:\Daten\ergebnis.txt'
Get-ChildItem $ordner -Filter *.cpy -File | %{"$($_.Name)`t$($_.BaseName[0..5] -join '')$($_.Extension)"} | Set-Content $ausgabe