tobiisfreaky
Goto Top

Batch-Datei schreiben für Installation und Verknüpfung erstellen

Hallo Com,

ich muss eine Batch-Datei schreiben, die mir 2 Dateien installiert, dazwischen vllt 4-5 Sekunden wartet, bevor die nächste *.exe Datei begonnen wird zu installieren.

Wäre euch sehr verbunden, mir ein paar Befehle zu sagen, oder vllt auch eine Seite, wo man das selber lernen kann, ich habe leider nichts ausreichendes dazu gefunden face-sad
Vllt auch noch erklären, wie man die Rechte auf D:\ auf Vollzugriff per Batch stellen könnte...
Zusätzlich muss noch eine Verknüpfung erstellt werden, die von C:\Programme nach C:\Doku.....Autostart in All Users kopiert werden muss....

vielen Dank im vorraus!

ps: Es handelt sich um Windows XP mit SP2


Mit freundlichen Grüßen


Freaky

Content-ID: 64555

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

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

noergler
noergler 24.07.2007 um 13:50:16 Uhr
Goto Top
1. Mit

start / wait programm.exe

die Installationsdateien aufrufen.

2.

Schau mal im Hilfe und Supportcenter nach unter "cacls" zum Ändern der Berechtigungen auf Lw D:.

Nörgler
bastla
bastla 24.07.2007 um 13:53:08 Uhr
Goto Top
Hallo TobiisFreaky!

Bei XP steht Dir Die Resource Kit Tools enthalten "sleep.exe", dann stünde Dir "sleep 4" zur Verfügung, ansonsten wird gerne "ping -n 5 127.0.0.1" verwendet, um eine Pause von etwa 4 Sekunden zu erreichen.

Vllt auch noch erklären, wie man die Rechte auf D:\ auf Vollzugriff per Batch stellen könnte...
cacls D:\ /E /C /T /G Benutzer:F
Mit dem Schalter /T kann's ein wenig dauern ...

Grüße
bastla
TobiisFreaky
TobiisFreaky 24.07.2007 um 14:03:50 Uhr
Goto Top
wow ging ja wirklich sehr schnell, ich werde es gleich mal ausprobieren, vielen Dank vorerst

EDIT:

wie bekomme ich das "OK" am Ende der Installation weg?
Dafür muss es doch auch einen Befehl geben?

Freaky
bastla
bastla 24.07.2007 um 14:09:58 Uhr
Goto Top
Hallo TobiisFreaky!

Schau mal, ob die Installationsdatei einen Schalter "/Silent" oä für eine "unbeaufsichtigte Installation" unterstützt.

Ev kann Dir jemand mehr sagen, wenn Du den/die Namen der zu installierenden Software angibst ...

Grüße
bastla
TobiisFreaky
TobiisFreaky 24.07.2007 um 14:17:52 Uhr
Goto Top
ja den gibt es, den habe ich auch bereits verwendet, allerdings wird überhaupt nichts mehr angezeigt, die Batch-Datei shließt sich und im TASK-Manager wird die Datei kurz angezeigt, dann verschwindet diese.

<< cacls D: /E /C /T /G Benutzer:F
einzigster Fehler war hier der \, dieser darf nicht gesetzt werden!

Das hier funktioniert einwandfrei, wie du sagtest, bei /T hinkt er ein wenig, aber sonst ist das weiter kein Problem.

@ Bastla:

Es handelt sich um den ePO Agent und Update


Freaky
TobiisFreaky
TobiisFreaky 24.07.2007 um 14:24:26 Uhr
Goto Top
"sleep 4" erkennt er in der Batch nicht.

Das mit dem Loopback funktioniert, sieht aber unprofessionel aus :P

Hast du noch eine andere Lösung, oder dich nur vertippt?
bastla
bastla 24.07.2007 um 14:34:48 Uhr
Goto Top
Hallo TobiisFreaky!

Sorry, darauf vergesse ich immer mal gerne (weil bei mir unter XP immer installiert): Die "sleep.exe" findest Du in den "Resource Kit Tools", zB hier die Server 2003-Variante ...

Wenn Du "ping -n 5 127.0.0.1>nul" verwendest, müsste es aber auch passen.

Grüße
bastla
TobiisFreaky
TobiisFreaky 24.07.2007 um 15:04:10 Uhr
Goto Top
ja alles klar, hatte die exe bereits beim nachgoogln gefunden,

VIELEN DANK Leute, die Batch funktioniert einwandfrei:

@echo off
echo Installation des Virenscanners wird vorbereitet und installiert, bitte warten Sie einige Sekunden!
\\XXXXXXXXX\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3

echo .

start \\XXXXXXXXXXX\admin_backup\ePO_Dateien\FramePkg_aktuell_(epo-Agent).exe /silent
\\XXXXXXXXXXXX\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3

start \\XXXXXXXXXXXXX\admin_backup\ePO_Dateien\SDAT\sdat5080.exe /silent
echo Die Installation des Virenscanners und Updates sind abgeschlossen!
\\XXXXXXXXXXXX\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3

echo .

echo Einstellungen der Berechtigung fuer Laufwerk D:\ werden vorbereitet....

\\XXXXXXXXXXXX\admin_backup\ePO_Dateien\Sleep\sleep.exe 3
echo Einstellungen werden jetzt gestartet, bitte etwas warten!
\\XXXXXXXXXXX\admin_backup\ePO_Dateien\Sleep\sleep.exe 3
cacls D: /E /C /T /G Benutzer:F
echo .
echo Die Zugriffsberechtigung fuer "Benutzer" wurden geaendert!

\\XXXXXXXXXXX\admin_backup\ePO_Dateien\Sleep\sleep.exe 3

pause


face-smile vielen Dank nochmal!

Freaky
TobiisFreaky
TobiisFreaky 24.07.2007 um 15:15:18 Uhr
Goto Top
mal noch eine Frage :P

wie ist das eigentlich, wenn ich eine Verknüfung in den Autostart legen will?

müsste ja dann auch so irgendwie aussehen oder? :

copy "D:\persoenlich\Datafps.exe" "C:\Dokumente und Einstellungen\All Users\Startmenü\Autostart"

hmmm

Freaky
bastla
bastla 24.07.2007 um 15:52:27 Uhr
Goto Top
Hallo TobiisFreaky!

Mit der vor Dir angegebenen "copy"-Zeile würdest Du nicht eine Verknüpfung erstellen, sondern die "Datafps.exe" selbst kopieren (was natürlich auch eine Möglichkeit wäre).

Wenn es aber tatsächlich eine Verknüpfung sein soll, diese einmal wie gehabt erstellen und die entstandene Datei (Dateityp ".lnk") kopieren.

Grüße
bastla
TobiisFreaky
TobiisFreaky 24.07.2007 um 15:57:03 Uhr
Goto Top
ok aber gibt es auch eine Möglichkeit, eine Verknüpfung mit Hilfe einer Batch zu erstellen?

Desweiteren habe ich noch eine Frage zu der Pfadangabe, ich habe die Berechtigung für Benutzer auf Vollzugriff gestellt und wollte das per Batch erstmal kopieren, um zu testen, doch er sagt mir, dass de Pfad nicht vorhanden sei. Das liegt daran, dass er auch dem \Startmenü\ ein \Startmen³\ macht, was natürlich nicht vorhanden ist. selbst mit einem deutschen MS DOS Editor funktioniert das nicht. In "" ebenfalls nicht. Was für eine Möglichkeit gäbe es denn noch?

Freaky
Biber
Biber 24.07.2007 um 21:51:06 Uhr
Goto Top
Moin TobiisFreaky

> ok aber gibt es auch eine Möglichkeit, eine Verknüpfung mit Hilfe einer Batch zu erstellen?

Bestimmt. Es gibt aber aber auch die Möglichkeit, für neu aufkommende Fragen wahlweise die forumseigene Suchfunktion zu benutzen oder einen Beitrag aufzumachen. Bitte nicht sieben inhaltlich vollkommen unterschiedliche Fragen in einem Beitrag.
Und nicht in dem Stil "Danke. Problem gelöst. Aber da hätte ich noch eine andere Frage.." immer weitermachen.
Diese Forumsidee funktioniert ja nur sinnvoll, wenn oben eine Frage steht, darunter vielleicht dazu passende Lösungen.
Wer sollte denn später mal unter der Überschrift "Batch-Datei schreiben für Installation" eine Lösung für LNK-Erstellung vermuten??


> Desweiteren habe ich noch eine Frage zu der Pfadangabe, ich habe die Berechtigung für Benutzer auf Vollzugriff
> gestellt und wollte das per Batch erstmal kopieren, um zu testen, doch er sagt mir, dass de Pfad nicht vorhanden sei.
> Das liegt daran, dass er auch dem \Startmenü\ ein \Startmen³\ macht, was natürlich nicht vorhanden ist. selbst mit einem
> deutschen MS DOS Editor funktioniert das nicht. In "" ebenfalls nicht. Was für eine Möglichkeit gäbe es denn noch?


Mehrere.
  • einen Editor verwenden, der Text-Dateien im DOS und im WINDOWS-Code speichern kann.
  • oder mit dem Befehl CHCP feststellen und ggf. ändern, welche Codepage die CMD.exe verwendet (1242, 439 oder 850)
  • oder statt "..blabla ..\Starmenü" als letzten Teil des Pfades "...blabla..\STARTM~1" verwenden
  • oder folgenden Code-Schnipsel verwenden.
 ..
for /d %%i in ("%userprofile%\startme*") do Set "usersStartMenu=%%i"  
REM jetzt steht so etwas wie "C:\Dokumente und Einstellungen\Biber\Startmenü"   
REM in der Variablen %usersStartMenu%
REM ....und dann "copy blubb.xyz %usersStartMenu%\blubb.xyz" oder so.  
...

Alle kurz angesprochenen Lösungswege solltest Du auch über Forumssuche finden.

Grüße
Biber
TobiisFreaky
TobiisFreaky 24.07.2007 um 22:03:06 Uhr
Goto Top
ja stimmt schon, sry.

Aber letztes mal wurde ich von einem Admin angesprochen und gefragt, warum ic hgleichzeitig so viele Beiträge öffnen würde, wenn meine "Hauptfrage, wie das funktioniert" noch nicht mal gelöst sei... da haben wirs wieder... Naja gut, ich versuche mich daran zu halten face-smile

Tobi
Biber
Biber 24.07.2007 um 22:28:12 Uhr
Goto Top
Na ja, Tobi,

ich denke schon, dass wir da einen Mittelweg finden.
Ich wollte/würde mich ja auch nicht hinstellen und schreiben:
"Zu dieser Frage äußere ich mich erst in einem neuen Thread."

Manchmal habe ich nur so gewisse Moderatoren-Deja-vu-Momente...
...so zum Beispiel, als Dein vorletzter Kommentar mit den beiden Worten "ok aber " anfing.

Da konnte ich schon den weiteren Verlauf erahnen..*gg

Lass es uns einfach beides versuchen: Deine Fragen zu klären und die Lösungen wiederfind- und wiederverwendbar für andere ins Forum zu stellen.

Grüße
Biber
P.S. ...letztes mal wurde ich von einem Admin angesprochen
Ach was, das war nur ein globaler Admin...aber ich bin der Moderator hier in "Batch & Shell"... face-wink
bastla
bastla 24.07.2007 um 22:36:06 Uhr
Goto Top
Ich äußere mich jetzt auch gleich hier face-wink, wobei ich zum Erstellen einer Verknüpfung nur ein VB-Script anbieten kann:
Set WshShell = WScript.CreateObject("WScript.Shell")  
sLinkRoot = WshShell.SpecialFolders("StartMenu")  
sLinkPath = "Programme\Verknüpfung mit BlaBla.lnk"  
sTargetPath = "C:\Programme\Bla"  
sTargetProg = "BlaBla.exe"  
sDescr = "Unbeschreiblich ..."  

set oShortcut = WshShell.CreateShortcut(sLinkRoot & "\" & sLinkPath)  
oShortcut.TargetPath = strTargetPath & "\" & sTargetProg  
oShortcut.Description = sDescr
oShortcut.WorkingDirectory = sTargetPath
oShortcut.Save
Damit würde eine Verknüpfung namens "Verknüpfung mit BlaBla" in "Startmenü\Programme" erstellt, welche auf das Programm "C:\Programme\Bla\BlaBla.exe" zeigt.

Zusätzlich wird noch eine Beschreibung und das Arbeitsverzeichnis "C:\Programme\Bla" festgelegt.

Die jeweiligen Details lassen sich natürlich auch aus einem Batch übergeben. Das würde dann etwa so aussehen:
Set WshShell = WScript.CreateObject("WScript.Shell")  
sLinkRoot = WshShell.SpecialFolders(WScript.Arguments(0))
sLinkPath = WScript.Arguments(1)
sTargetPath = WScript.Arguments(2)
sTargetProg = WScript.Arguments(3)
sDescr = WScript.Arguments(4)

set oShortcut = WshShell.CreateShortcut(sLinkRoot & "\" & sLinkPath)  
oShortcut.TargetPath = strTargetPath & "\" & sTargetProg  
oShortcut.Description = sDescr
oShortcut.WorkingDirectory = sTargetPath
oShortcut.Save
Aufzurufen wäre das Script (wenn es als "C:\Scripts\MakeLink.vbs" gespeichert wurde) so:
cscript //nologo "C:\Scripts\MakeLink.vbs" "StartMenu" "Programme\Verknüpfung mit BlaBla.lnk" "C:\Programme\Bla" "BlaBla.exe" "Unbeschreiblich ..." 
In dieser Kurzfassung des Scripts werden weder Pfade noch Parameter überprüft, aber zum Testen sollte es einmal reichen ...

Grüße
bastla
Biber
Biber 24.07.2007 um 22:44:23 Uhr
Goto Top
Na gut, bastla,

aber wenn er jetzt wieder mit "ok aber" antwortet, dann schließe ich den Beitrag...

face-big-smile
...just kidding...

Grüße
Biber
TobiisFreaky
TobiisFreaky 25.07.2007 um 07:53:32 Uhr
Goto Top
haha, sehr witzig ;)

mal eine Frage, ohne ok aber .....

Ich habe das Script von bastla kopiert und soweit angepasst:

"C:\Scripts\MakeLink.vbs" = auf Server gelegt und Link angepasst
"StartMenu" = damit kann ich nichts anfangen
"Programme\Verknüpfung mit BlaBla.lnk" = auf C:\ gelegt mit *.exe, was ich hieran nicht verstehe, ist was eine Verknüpfung erstellt wird, bevor der wirkliche Ordner und die Datei angegeben werden....
"C:\Programme\Bla" = Ordner ist klar
"BlaBla.exe" = ist ebenfalls klar, die Datei von der die Verknüfung gemacht werden soll.
"Unbeschreiblich ..." = Kommentar Oo

ich benutze mal die Suchfunktion, erhoffe mir aber nicht viel....

Freaky
bastla
bastla 25.07.2007 um 09:32:50 Uhr
Goto Top
Hallo TobiisFreaky!

"StartMenu" = damit kann ich nichts anfangen
Damit kann einer der "SpecialFolders" verwendet werden, entspricht daher der variablen (was die Lösung flexibler macht) Angabe "%userprofile%\Startmenü" - dort wolltest Du doch hin.

Anstelle von "StartMenu" kannst Du auch zB (Liste siehe hier) "AllUsersStartMenu" oder "Desktop" verwenden - in letzterem Falle würdest Du beim nächsten Parameter vermutlich das Verzeichnis weglassen und nur "Verknüpfung mit BlaBla.lnk" schreiben ...

Also nochmals: Die beiden Pfade für den Ort der Verknüpfung (persönliches Startmenü, Ordner "Programme" + Verknüpfungsname "Verknüpfung mit BlaBla.lnk") und Ort der Programmdatei sind jeweils aufgeteilt.

Wenn Du genau mitteilst, wie der Pfad aussehen und was die Verknüpfung enthalten soll, kann ich das ja gerne anpassen - als Minimum würde auch schon
set oShortcut = WScript.CreateObject("WScript.Shell").CreateShortcut("C:\Dokumente und Einstellungen\Username\Startmenü\Programme\Verknüpfung mit BlaBla.lnk")  
oShortcut.TargetPath = "C:\Programme\Bla\BlaBla.exe"  
oShortcut.Save
genügen, wobei aber der "Username" nicht variabel wäre, daher ... (siehe oben).

Grüße
bastla
TobiisFreaky
TobiisFreaky 25.07.2007 um 13:02:16 Uhr
Goto Top
OK! Herzlichen Dank,

ich habe jetzt einfach die Datei per copy eingebunden, also diese wird jetzt kopiert, mir ist aufgefallen, dass diese nur 250KB groß ist, also kann man die ruhig in den Autostart setzen.

Vielen Dank an dich bastla und alle anderen, die mir geholfen haben/wollten face-smile

Das mit der Script Datei schau ich mir noch mal an, wenn ich mehr Zeit habe, im Moment eilt es ziemlich, alle Rechner fertig zu verteilen.


Freaky


Hier der Code:

@echo off
echo Installation des Virenscanners wird vorbereitet und installiert, bitte warten Sie einige Sekunden!
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3
echo.
echo.
start \\10.40.1.11\admin_backup\ePO_Dateien\FramePkg_aktuell_(epo-Agent).exe /silent
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3
start \\10.40.1.11\admin_backup\ePO_Dateien\SDAT\sdat5080.exe /silent
echo.
echo Die Installation des Virenscanners und Updates sind abgeschlossen!
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\Sleep.exe 3
echo.
echo.
echo Einstellungen der Berechtigung fuer Laufwerk D:\ werden vorbereitet....
echo.
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\sleep.exe 3
echo Einstellungen werden jetzt gestartet, bitte etwas warten!
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\sleep.exe 3
cacls D: /E /C /T /G Benutzer:F
echo.
echo.
echo Die Zugriffsberechtigung fuer "Benutzer" wurden geaendert!
echo.
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\sleep.exe 3
echo.
echo FreePDF wird in den Autostart verknuepft!
echo.
copy "C:\Programme\FreePDF_XP\fpassist.exe" "C:\Dokumente und Einstellungen\All Users\Startmen\Programme\Autostart"
echo.
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\sleep.exe 5
echo.
echo Alles installiert!
\\10.40.1.11\admin_backup\ePO_Dateien\Sleep\sleep.exe 2


Wenn etwas verbessert werden kann, ruhig her damit :P