Seite 1 von 1
Winst copy Befehl "program files" Problem
Verfasst: 14 Nov 2008, 15:20
von Sven.Beierlein
Hallo,
hat jemand eine idee wie man mit winst eine datei in c:\program files kopieren kann?
wenn ich folgendes eingebe:
dann kopiert er mit nichts

Re: Winst copy Befehl "program files" Problem
Verfasst: 14 Nov 2008, 16:48
von Lumo
Hi
Der Copy Befehl muss in der Files-Sektion sein
Beispiel:
Code: Alles auswählen
[Initial]
Message "Outlook Signatur einrichten"
LogLevel=2
StayOnTop=true
[Aktionen]
DefVar $sigpath$
Set $sigpath$ = "%AppdataDir%\Microsoft\Signatures\"
ShowBitmap /3 "%SCRIPTPATH%\outlook.bmp" "Outlook Signatur"
Files_copy
WinBatch_registersig
[Files_copy]
copy %scriptpath%\defaultsig.* $sigpath$
[WinBatch_registersig]
regedit /s %scriptpath%\signatur_registry.reg
Blos tritt hier bei mir der Fehler auf, dass %AppdataDir% den Wert "-!!- not found -!!-" enthält. Also die Dateien werden praktisch in C:\-!!- not found -!!-\Microsoft\Signatures\ kopiert, wohin sie natürlich nicht wirklich gehören.
Weiß da vielleicht jemand weiter wo mein Fehler liegt?
Vielen Dank
Re: Winst copy Befehl "program files" Problem
Verfasst: 14 Nov 2008, 17:46
von d.oertel
Hallo,
%AppdataDir%
ist laut Winst-Handbuch z.B.
C:\Dokumente und Einstellungen\%USERNAME%\Anwendungsdaten
wobei %USERNAME% durch den aktuellen user ersetzt wird.
Im opsi Kontext wird ein Winstscript aber von einem Service ohne User ausgeführt
- daher der Fehler.
Wo soll die Datei nun hin?
<Glaskugelmodus>
In alle user-Profilverzeichnisse ?
</Glaskugelmodus>
Wenn ja:
Mal sowas probieren:
Code: Alles auswählen
[Aktionen]
DefVar $sigpath$
Set $sigpath$ = "Microsoft\Signatures\"
Files_copy /AllNtUserProfiles
[Files_copy]
copy "%scriptpath%\defaultsig.*" "%UserProfileDir%\Anwendungsdaten\$sigpath$"
Siehe Winst-Handbuch Kapitel 7.1 (besonders 7.1.2).
Hilft das ?
gruss
detlef oertel
Re: Winst copy Befehl "program files" Problem
Verfasst: 17 Nov 2008, 08:26
von Sven.Beierlein
Mein Problem war eigentlich dass ich Dateien in Verzeichnisse kopieren möchte, welche ein Leerzeichen in der Namensgebung beeinhalten.
So wie eben bei einer englischen Version von Windows der "Program Files"-Ordner unter C:\
Das gelingt jedoch nicht, da er dann immer einen Fehler bringt wo er nach "Program" abbricht und der copy-Befehl ja eigentlich weitergeht.
Code: Alles auswählen
[Initial]
; Message at install time:
Message=Kopiere programmbeispiel Setup Files...
LogLevel=2
; Log Errors in Logfile but don't abort:
ExitOnError=false
; Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false
[Aktionen]
DefVar $TEMP$
Set $TEMP$ = EnvVar("TEMP")
;Variables for OS version
DefVar $OS$
set $OS$ = GetOS
; is this a win32 system ?
if ( $OS$ = "Windows_NT" OR $OS$ = "Windows_95" )
if not(HasMinimumSpace ("%SYSTEMDRIVE%", "10 MB"))
LogError "Nicht gengend Platz auf C: . 10 MB auf C: fuer programmbeispiel erforderlich."
isFatalError
; Bearbeitung beenden und Produktschalter auf failed setzen
else
; show product picture
ShowBitmap /3 "%scriptpath%\kmw_opsi.bmp" "programmbeispiel"
; start setup program
sub_install_programmbeispiel
endif
endif
[sub_install_common-cfg]
files_copy_winXP
Registry_runOnce
[files_copy_winXP]
copy "%scriptpath%\files\*.*" "c:\program files\programmbeispiel\setup\files"
[Registry_runOnce]
openkey [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
set "opsi_autologon_setup"="c:\program files\programmbeispiel\setup\files\setup.bat"