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?
Was auch noch nicht funktioniert ist, wenn der Dateiname kürzer als 7 Stellen ist???
Danke und Gruß
Thomas
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 74821
Url: https://administrator.de/contentid/74821
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Loonie!
Grüße
bastla
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
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?
Grüße
Biber
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
@Biber
Ob ein Kürzen außerdem wirklich Abhilfe schafft, wenn das Problem als "... wenn der Dateiname kürzer als 7 Stellen ist?" formuliert wurde?
Grüße
bastla
... 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?
Grüße
bastla
@bastla
Von 0 bis 7 sind... na??
Grüße
Biber
wenn der Dateiname bereits auf 7 Stellen gekürzt wurde..
Wo wird er denn auf 7 Zeichen gekürzt? Von 0 bis 7 sind... na??
Grüße
Biber
@Biber
Grüße
bastla
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 ) ...Grüße
bastla