Verzeichnis kopieren

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Verzeichnis kopieren

Beitragvon heinzer » 18 Nov 2017, 22:11

Hi nochmals,

kann mir jemand sagen, wie ich ein Verzeichnis per Opsi-Paket auf einen Rechner kopieren kann....etwa nach c:\Verzeichnis? Also ich weiß nur nicht, wie ich das im setupscript starten muss. Der Befehl würde schlicht lauten: copy "%ScriptPath%\VERZEICHNIS" "c:\VERZEICHNIS"
Was mach ich falsch?

Vielen Dank für jede Hilfe

Stefan

reduef
Beiträge: 12
Registriert: 10 Nov 2017, 20:15

Re: Verzeichnis kopieren

Beitragvon reduef » 19 Nov 2017, 11:26

Hallo Stefan,

sofern ich die Arbeitsweise eines Opsi-Skripts richtig verstanden habe, sollte das einfache Kopieren von Dateien so gehen:
1) Ablegen der zu kopierenden Dateien im Ordner CLIENT_DATA des entsprechenden Opsi-Pakets, z.B. in einem Unterordner DATEIEN
2) Im Skript:

DefVar $InstallDir$
Set $InstallDir$ = "%SystemDrive%\Zielordner"
copy -s "%ScriptPath%\DATEIEN\*.*" "$InstallDir$"

Zielordner ist der Ordner, wo die Dateien auf dem Client am Ende landen sollen. Die Option -s sorgt beim Kopieren dafür, dass auch Unterordner kopiert werden.

Viele Grüße,
Uwe

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Re: Verzeichnis kopieren

Beitragvon heinzer » 19 Nov 2017, 16:30

danke.....meine Versuche bringen folgenden Fehler:

[2] [Nov 19 16:29:24:991] Syntax Error in Section: Actions (Command in line 40 origin: \\OPSISERVER\opsi_workbench\jdownload\CLIENT_DATA\setup32.opsiscript line: 41): copy -> undefined

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Re: Verzeichnis kopieren

Beitragvon heinzer » 19 Nov 2017, 16:43

dies ist der momentane Inhalt des setup-scripts:


[Actions]
requiredWinstVersion >= "4.11.4.6"
ScriptErrorMessages=off

DefVar $MsiId$
DefVar $UninstallProgram$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $displayName32$
DefVar $displayName64$

DefStringlist $msilist$

Set $LogDir$ = "%opsiLogDir%"

; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "jdownload"
Set $MinimumSpace$ = "250 MB"
; the path were we find the product after the installation
Set $InstallDir$ = "%SystemDrive%"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------


[Files_copy]
copy "%ScriptPath%\JDownloader\*.*" "$InstallDir$"

reduef
Beiträge: 12
Registriert: 10 Nov 2017, 20:15

Re: Verzeichnis kopieren

Beitragvon reduef » 19 Nov 2017, 17:58

Vermutung:
Ubuntu ist case sensitive, d.h. wenn die Groß- / Kleinschreibung bei den Pfaden nicht exakt passt, geht es nicht ...

rat
Beiträge: 264
Registriert: 01 Jan 2015, 12:40

Re: Verzeichnis kopieren

Beitragvon rat » 20 Nov 2017, 08:08

heinzer hat geschrieben:

[Actions]

DefVar $InstallDir$
Set $InstallDir$ = "%SystemDrive%"

[Files_copy]
copy "%ScriptPath%\JDownloader\*.*" "$InstallDir$"


Frage 1: Was sagt das Log? Welche Fehlermeldung kommt dort?

Frage 2: Wo liegen die zu kopieren Ordner / Dateien? Die sollen wirklich nach C:\? Somit sollte es rein Theo ein Ordner (ohne "parallel" liegenden Dateien) sein, oder?

Vorschläge:

-> Log
-> copy -s statt "nur" copy
-> Alle Variablen hardcoded ersetzen und dann das Log kontrollieren


Nach mehrmaligen Durchlesen, noch eine kleine Frage:

Willst Du den Ordner "JDownloader" kopieren oder einen "JDownloader\DAS_ist_der_zu_kopierende_Ordner\Dateien_da_drinnen.irgendwas"?

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Re: Verzeichnis kopieren

Beitragvon heinzer » 20 Nov 2017, 12:13

Hi,
nachdem ich das Script so verändert hab, tut sich was, nur dass es den Ordner nach "C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst" kopiert....und zwar übrigens den Inhalt, nicht den Ordner selbst...
Es sieht so aus im Moment:

[Actions]
requiredWinstVersion >= "4.11.4.6"
ScriptErrorMessages=off

DefVar $MsiId$
DefVar $UninstallProgram$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $displayName32$
DefVar $displayName64$

DefStringlist $msilist$

Set $LogDir$ = "%opsiLogDir%"

; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "jdownload"
Set $MinimumSpace$ = "250 MB"
; the path were we find the product after the installation
Set $InstallDir$ = "%SystemDrive%"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------


Files_install_32
[Files_install_32]
; Example of recursively copying some files into the installation directory:
;
copy -s "%ScriptPath%\JDownloader\*.*" "$InstallDir$"



Was ich möchte ist, den Ordner samt Inhalt nach C:\Users\Public\Downloads zu kopieren....
Von mir aus kann der zu kopierende Ordner auch in einer Freigabe sein, etwa "\\192.168.0.200\opsi_workbench\jdownload\CLIENT_DATA\JDownloader"


Vielen Dank und Grüße
Stefan

andré
Beiträge: 281
Registriert: 07 Jan 2014, 10:48

Re: Verzeichnis kopieren

Beitragvon andré » 20 Nov 2017, 12:49

Wenn du *.* nutzt, werden nur alle Dateien im Quellverzeichnis kopiert. Den Zielordner musst du dann manuell genauso nennen, wie den Quellordner.
Das sieht bei mir z.B. so aus.

Code: Alles auswählen

Set $CopyQuelle_Firefox$ = "%ScriptPath%\Firefox\*.*"
Set $TempVerzeichnis_Firefox$ = "%SystemDrive%\tmp\Firefox"


Files_copy_temp_Firefox

[Files_copy_temp_Firefox]
copy -s $CopyQuelle_Firefox$ $TempVerzeichnis_Firefox$

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Re: Verzeichnis kopieren

Beitragvon heinzer » 20 Nov 2017, 13:03

so klappts jetzt:

Files_copy

[Files_copy]
copy -s "%ScriptPath%\JDownloader\*.*" "$InstallDir$\jdownloader"

vielen dank

heinzer
Beiträge: 56
Registriert: 16 Nov 2011, 13:33

Re: Verzeichnis kopieren

Beitragvon heinzer » 20 Nov 2017, 16:26

wenn ich es aber als opsi-paket starte , passiert wieder nichts....also in der "Winst-Konsole" funktionert es, aber wenn ich es dann mit opsi-makeproductfile und opsi-package-manager -i installiere und per configed verteile, dann passiert nix...