loonie

Unterstrich und Blanks aus Dateinamen entfernen

Hallo,

ich möchte über das Kontextmenu eine Datei per FTP an einen Großrechner versenden. Soweit kein Problem, Ablage der Batchdateien im SendTo-Verzeichnis. Dabei wird der Dateiname auf dem Host aus den ersten 7 Stellen des lokalen Dateinamens gebildet. Dort sind nur 8 Zeichen pro Stufe zugelassen. Die erste Stelle jeder Stufe darf keine Zahl sein, daher nehm ich nur die ersten sieben und setze ein F davor. So weit so gut...

Allerdings sind im Dateinamen auf dem Host bestimmte Zeichen nicht zugelassen, z.B. Blanks und Unterstriche. Wie kann ich aus der Datei 123_test.txt --> 123test machen, also aus der Variablen %myDateik% Blank und Unterstrich entfernen?

set mypfad=%temp%
set myftpfile=%mypfad%\download1.txt
set myuser=User123
set mypassword=topsecret
set "myDatei=%~n1"  
set "myDateik=%myDatei:~0,7%"  
echo %myuser% > %myftpfile%
echo %mypassword% >> %myftpfile%
echo quote site sbd=(ibm-273,iso8859-1) >> %myftpfile%
echo put %1 '%myuser%.FTPANSI.F%myDateik%' >> %myftpfile%  
echo quit >> %myftpfile%
ftp -s:%myftpfile% host0815
del %myftpfile%

Was auch noch nicht funktioniert ist, wenn der Dateiname kürzer als 7 Stellen ist???

Danke und Gruß

Thomas
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 74821

Url: https://administrator.de/forum/unterstrich-und-blanks-aus-dateinamen-entfernen-74821.html

Ausgedruckt am: 29.04.2025 um 03:04 Uhr

bastla
bastla 29.11.2007 um 15:29:49 Uhr
Goto Top
Hallo Loonie!

Blank und Unterstrich entfernen?
Du kannst die "Ersetzen"-Funktionalität des "set"-Befehles (siehe "set /?") dazu verwenden:
...
::Blanks entfernen
set "myDateik=%myDateik: =%"  
::Underscores entfernen
set "myDateik=%myDateik:_=%"  

Was auch noch nicht funktioniert ist, wenn der Dateiname kürzer als 7 Stellen ist?
Wie definierst Du "nicht funktioniert"?

Grüße
bastla
Biber
Biber 29.11.2007 um 16:34:08 Uhr
Goto Top
Moin bastla,

er meinte bestimmt, wenn der verbleibende Dateiname noch 8 Zeichen lang ist und er dann ein "F" vor den Namen setzt, dann kann der FTP-Transfer nicht klappen.
Weil "F"+8 Zeichen = 9 Zeichen --> bei max. 8 Zeichen je Pointerstufe auf dem Host->#TILT#.

Vielleicht sollte man/frau den "verbleibenden Namen" ähnlich wie oben nochmals kürzen?
... echo put %1 '%myuser%.FTPANSI.F%myDateik:~0,6%'   
...

Grüße
Biber
bastla
bastla 29.11.2007 um 16:44:05 Uhr
Goto Top
@Biber
... der verbleibende Dateiname noch 8 Zeichen lang ist ...
Da kann ich jetzt nicht mehr folgen - wenn der Dateiname bereits auf 7 Stellen gekürzt und daraus uU noch Blanks und Underscores entfernt wurden ...

Ob ein Kürzen außerdem wirklich Abhilfe schafft, wenn das Problem als "... wenn der Dateiname kürzer als 7 Stellen ist?" formuliert wurde? face-wink

Grüße
bastla
Biber
Biber 29.11.2007 um 16:47:53 Uhr
Goto Top
@bastla

wenn der Dateiname bereits auf 7 Stellen gekürzt wurde..
Wo wird er denn auf 7 Zeichen gekürzt? face-wink

Von 0 bis 7 sind... na??

Grüße
Biber
bastla
bastla 29.11.2007 um 16:54:05 Uhr
Goto Top
@Biber
set "myDateik=%myDatei:~0,7%"
Und ich hatte die 0 immer als Stelle, nach welcher der Teilstring entnommen wird, interpretiert (und auch noch das gewünschte Ergebnis erhalten - die nächste MS-Gemeinheit face-wink) ...

Grüße
bastla
Loonie
Loonie 30.11.2007 um 21:28:33 Uhr
Goto Top
Hey Biber, hey Bastla,

vielen Dank für die schnelle Antwort.

set "myDateik=%myDatei:~0,7%" nimmt die ersten sieben Stellen des Dateinamens. Daran lags also nicht. Das Problem ist jetzt aber auch nicht mehr aufgetreten, keine Ahnung warum oder besser warum nicht face-wink

Also vielen Dank nochmal...Schönes Wochenende

Thomas