ralfkausk
Goto Top

durch script erzeugte Leerzeichen entfernen

ich muß eine Software instalieren die am ende in jedem vorhandenen Benutzerprofil eine Konfigurationsdatei ablegt. Die installation klappt wunderbar, nur das mit der Konfigurationsdatei noch nicht so ganz.

Folgendes hab ich gemacht:
@echo off

:: löschen alter dateien
if exist c:\temp\sap\homedirtemp.txt del c:\temp\sap\homedirtemp.txt
if exist c:\temp\sap\homedirs.txt del c:\temp\sap\homedirs.txt

:: Variable setzten
set docset=C:\Documents and Settings
set sapdir=\Application Data\SapGui\

:: homedirs auslesen und in datei schreiben
dir /b "%docset%" > c:\temp\sap\homedirtemp.txt  

:: kompletten SAPGUI-Pfad in datei schreiben
for /f "tokens=*" %%i in (c:\temp\sap\homedirtemp.txt) do @echo %docset%\%%i%sapdir% >> c:\temp\sap\homedirs.txt  
	
:: kopierbefehl ausführen
:: for /f "tokens=*" %%i in (c:\temp\sap\homedirs.txt) do xcopy "X:\div\install\GFT\SAP_Patches\saplogon.ini" "%%i\%sapdir%"  /i /h /r /y  
for /f "tokens=*" %%i in (c:\temp\sap\homedirs.txt) do @echo "%%i%sapdir%"  
exit

Mein Problem ist, das dass Zusammenfügen der einzelnen Ergebnisse nicht so funktioniert wie ich mir das vorstelle.
Die vorhandenen Benutzerverzeichnisse werden korrekt ausgelesen und in die Datei gespeichert.
Wenn ich allerdings, die drei datensätze zusammenfüge (%docset% + benutzerid + %sapdir%, entsteht am Ende ein Leerzeichen!
Das sieht dann so aus: "C:\Documents and Settings\benutzername\Application Data\SapGui\ "
Am Ende, hinter SapGui ist ein Leerzeichen.
Darum fragt der xcopy Befehl dann jedesmal ob es sich um eine Datei oder ein Verzeichnis handelt.

Meine Frage wäre jetzt, wie bekomme ich das Leerzeiche am Ende weg?

Vielen dank im voraus
Ralf

Content-Key: 100351

Url: https://administrator.de/contentid/100351

Printed on: April 19, 2024 at 05:04 o'clock

Member: paulepank
paulepank Oct 27, 2008 at 13:45:45 (UTC)
Goto Top
Hallo Ralf,

laß das Leerzeichen vor >> in Zeile 15 weg. Also so:
......@echo %docset%\%%i%sapdir%>> c:\temp\sap\homedirs.txt

in der Kommandozeile geht das zumindest.

Alternativ, hast du schon mal die Option /i bei Xcopy getestet ?

cu paulepank
Member: bastla
bastla Oct 27, 2008 at 14:01:42 (UTC)
Goto Top
... und zur Sicherheit ändere die Zeile 9 auf
set "sapdir=\Application Data\SapGui\"
Dem von paulepank angesprochenen Problem beuge ich gerne mit folgender Schreibweise vor:
.... @>>c:\temp\sap\homedirs.txt echo %docset%\%%i%sapdir%
... und da ich schon mal da bin: Pfade wie zB "c:\temp\sap\homedirs.txt" lassen sich leichter pflegen, wenn Du sie vorweg Variablen zuweist ...

Grüße
bastla
Member: ralfkausk
ralfkausk Oct 27, 2008 at 14:43:12 (UTC)
Goto Top
@paulepank
das wars! danke

so ein mist, an anderer Stelle passiert das nicht, warum ausgerechnet da?
na ja, was soll's, hauptsache es funktioniert face-wink

@bastla
danke auch für deine hilfe
aber, anführungszeichen an der stelle funktionieren nicht, da ich die variable %%i schon damit maskiert habe.

das mit den pfaden werde ich auch noch machen, auf jeden fall. das script läuft aber im moment nur auf meiner testmaschine, darum hatte ich das noch nicht geändert.
Member: bastla
bastla Oct 27, 2008 at 15:02:37 (UTC)
Goto Top
Hallo rkujadt!
anführungszeichen an der stelle funktionieren nicht, da ich die variable %%i schon damit maskiert habe.
Du hast das auch getestet?

Grüße
bastla