Zeichen in Dateinamen Löschen
Hallo in die Runde Hier,
Ich hab da ein kleines Problem, und zar beckomme ich datein die wie folgt aussehen sollten > Barcode(123456789)_1.txt aus Irgent ein Grund geht dieses nicht mehr, und das system (HP software) setzt mir willkürlich zeichen in der Klammer dahinter.
Das sieht dann so aus Barcode(123456789_1.txt oder Barcode(123456789Ä)_1.txt . Der Hersteller arbeitet zwar an einer Lösung aber ich weiß nicht wie lange das noch dauert. kann ich das lezte zeichen in der Klammer in der Klammer vie batch löschen??
danke für eure antworten
Ich hab da ein kleines Problem, und zar beckomme ich datein die wie folgt aussehen sollten > Barcode(123456789)_1.txt aus Irgent ein Grund geht dieses nicht mehr, und das system (HP software) setzt mir willkürlich zeichen in der Klammer dahinter.
Das sieht dann so aus Barcode(123456789_1.txt oder Barcode(123456789Ä)_1.txt . Der Hersteller arbeitet zwar an einer Lösung aber ich weiß nicht wie lange das noch dauert. kann ich das lezte zeichen in der Klammer in der Klammer vie batch löschen??
danke für eure antworten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156862
Url: https://administrator.de/contentid/156862
Ausgedruckt am: 12.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
moin,
Gegenfrage - wie stellst du sicher, dass das nur bei Dateien laufen soll - die nicht bereits durchgenudelt wurden?
Ohne diesen Input macht das helfen keinen Sinn und eine Lösung verkehrt sich zum Gegenteil in ein Problem.
Gruß
Gegenfrage - wie stellst du sicher, dass das nur bei Dateien laufen soll - die nicht bereits durchgenudelt wurden?
- Sind die gewünschten Zeichen immer ziffern?
- gibt es eine länge, die die Dateinamen haben (sollten)?
Ohne diesen Input macht das helfen keinen Sinn und eine Lösung verkehrt sich zum Gegenteil in ein Problem.
Gruß
Moin,
das wäre mein Vorschlag gewesen:
Markus
das wäre mein Vorschlag gewesen:
@echo off
for /f "tokens=1,2 delims=)" %%a in ('dir c:\temp\bar*.* /b') do (
Set Teil1=%%a
Set Teil2=%%b
call :MachWas
)
goto :eof
:MachWas
Set AlterName=%Teil1%)%Teil2%
Set NeuerName=%Teil1:~0,-1%)%Teil2%
echo bisher = %AlterName%
echo neu = %NeuerName%
goto :eof
Markus
Moin Breuwolf,
a) ich würde eigentlich nichts machen - das Problem muss mit Hochdruck vom Software-Bereitsteller gefixt werden.
Mit halbgaren Workarounds nehmt ihr den Druck weg und habt nur eine scheinbare Stablität.
b) da ich weiss, dass solche Ratschläge ignoriert werden - wenn man mich denn zwänge, etwas zu machen, dann in etwa nach folgendem Muster
[Beispiel/Demo am CMD-Prompt]
Wie gesagt - ich würde nichts tun --> weil ein Fehler niemals gefixt wird, wenn es einen Workaround gibt.
Grüße
Biber
a) ich würde eigentlich nichts machen - das Problem muss mit Hochdruck vom Software-Bereitsteller gefixt werden.
Mit halbgaren Workarounds nehmt ihr den Druck weg und habt nur eine scheinbare Stablität.
b) da ich weiss, dass solche Ratschläge ignoriert werden - wenn man mich denn zwänge, etwas zu machen, dann in etwa nach folgendem Muster
[Beispiel/Demo am CMD-Prompt]
>set "dateiname=Barcode(123456789Ä)_1.txt"
## den Dateinamen jeder Datei in eine Variable setzen, z.B. in einer FOR-Anweisung
>@echo If /i [%Dateiname:~0,17%%Dateiname:~-7%] neq [%dateiname%] @echo Ren "%dateiname%" "%Dateiname:~0,17%%Dateiname:~-7%"
If /i [Barcode(123456789)_1.txt] neq [Barcode(123456789Ä)_1.txt] @echo Ren "Barcode(123456789Ä)_1.txt" "Barcode(123456789)_1.txt"
## und diese Prüfung TESTEN mit den beiden @echos und PROD laufen lassen ohne die @Echos.
Wie gesagt - ich würde nichts tun --> weil ein Fehler niemals gefixt wird, wenn es einen Workaround gibt.
Grüße
Biber