Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

L-e-c-h-u

plik *.bat HELP !!!

Rekomendowane odpowiedzi

Witam,

 

Mam następujący problem:

Muszę napisać plik *.bat który będzie wykonywał następujące zadania:

1. Musi zainstalować MS Office 2000 SR-1

2. Po zakończeniu instalacji Offica ma zainstalować do niego Service Packa 3 ale musi to nastąpić gdy instalacja samego Offica zostanie już ukończona.

 

I tu moje pytanie ??? Jakiej funkcji użyć żeby bat czekał z wykonaniem drugiej linii poleceń na to aż zakończy się realizowanie pierwszej. Instalacja jest zautomatyzowana kreatorem w pliku MST czyli leci w tle i o nic się nie pyta.

 

moje linijki wyglądają następująco (próbowałem użyć funkcji start z parametrem wait co powinno działać ale nie działa) :

 

start

tmsmsofficeoffice2k_z_SR1.plinstalo2ksr1.bat wait

start

tmsmsofficeoffice2k_z_SR1.plO2kSp3.exe /q

 

plz pomóżcie !!!

może ktoś potrafi napisać coś takiego że jak zakończy się proces instalacji offica to bat przechodzi do drugiej linijki proces instalujący offica nazywa się msiexec.exe

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Witam, 

 

Mam następujący problem:

Muszę napisać plik *.bat który będzie wykonywał następujące zadania:

1. Musi zainstalować MS Office 2000 SR-1

2. Po zakończeniu instalacji Offica ma zainstalować do niego Service Packa 3 ale musi to nastąpić gdy instalacja samego Offica zostanie już ukończona.

 

I tu moje pytanie ??? Jakiej funkcji użyć żeby bat czekał z wykonaniem drugiej linii poleceń na to aż zakończy się realizowanie pierwszej. Instalacja jest zautomatyzowana kreatorem w pliku MST czyli leci w tle i o nic się nie pyta.

 

moje linijki wyglądają następująco (próbowałem użyć funkcji start z parametrem wait co powinno działać ale nie działa) :

 

start

tmsmsofficeoffice2k_z_SR1.plinstalo2ksr1.bat wait

start

tmsmsofficeoffice2k_z_SR1.plO2kSp3.exe /q

 

plz pomóżcie !!! 

może ktoś potrafi napisać coś takiego że jak zakończy się proces instalacji offica to bat przechodzi do drugiej linijki proces instalujący offica nazywa się msiexec.exe

 

Pierwsze pytanie: czy to ma byc prawdziwy plik *.bat czy tez uzywajacy rozszerzen NT *.cmd? Zakladam ze ten drugi bo probujesz instrukcji 'start', specyficznej dla cmd.exe. Moja rada - wyrzuc to. Zamiast 'start' uzyj po prostu 'call' - masz wtedy gwarancje, ze druga komenda bedzie wywolana po pierwszej i co najwazniejsze nie otworzy Ci sie nowe okienko linii komend. Nie jestem tylko pewien czy 'call' dziala na sciezkach UNC, byc moze bedziesz musial sobie najpierw podczepic dysk pod sciezke. Ta wiec skrypt moze wygladac bastepujaco:

net use u: 
tms

call u:msofficeoffice2k_z_SR1.plinstalo2ksr1.bat

u:msofficeoffice2k_z_SR1.plO2kSp3.exe /q

net use u: /delete

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

:(((((

 

No niestety zastosowałem podany przez ciebie szablonik ale nadal obydwie linijki odpala jednocześnie nie czeka aż pierwsza sie skończy :((((((

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
:(((((

 

No niestety zastosowałem podany przez ciebie szablonik ale nadal obydwie linijki odpala jednocześnie nie czeka aż pierwsza sie skończy :((((((

 

A to oznacza ze musisz przejrzec plik instalo2ksr1.bat. To on sie konczy zanim skoncza sie wszystkie zawarte w nim instrukcje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak wygląda instalo2ksr1.bat :

 

 

tmsmsofficeoffice2k_z_SR1.plsetuppro.exe /settings

tmsmsofficeoffice2k_z_SR1.plsetupfull.ini

 

i co zrobić ??

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Tak wygląda instalo2ksr1.bat :

 

 

tmsmsofficeoffice2k_z_SR1.plsetuppro.exe /settings

tmsmsofficeoffice2k_z_SR1.plsetupfull.ini

 

i co zrobić ??

 

to jest chyba jedna linijka, prawda? Poprawic na

call

tmsmsofficeoffice2k_z_SR1.plsetuppro.exe /settings

tmsmsofficeoffice2k_z_SR1.plsetupfull.ini

 

albo, jesli dysk jest zmapowany, na

call u:msofficeoffice2k_z_SR1.plsetuppro.exe /settings u:msofficeoffice2k_z_SR1.plsetupfull.ini

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Poprawiłem i niestety wciąż to samo obydwie linijki odpalają się jednocześnie :((((((((((((

 

Plz wymyśl coś jeszcze !!!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pomysly mi sie juz koncza. Sprobuj moze zamiast instalo2ksr1.bat odpalac jego zawartosc. Ewentualnie dla execa zamiast call wywolaj start /wait.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem jak dziala ten instalator. Ale jesli dziala na zasadzie

Init

CreateProcess(WlasciwyInstalator)

End

 

to nic nie zrobisz - nie jestes w stanie sprawdzic kiedy skonczy sie wlasciwy instalator :(.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a może inaczej ten problem ugryźć.

Wymyśliłem coś takiego tylko nie wiem jak to zapisać.

Żeby skrypt sprawdzał czy proces msiexec.exe został ukończony i jeśli nie to wstrzymuje drugi proces a jeśli tak odpala drugi proces !

 

if exist [proces msiexec.exe] goto 1 else goto 2

 

ale jak to zapisać ???

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To by sie dalo, ale tylko pod XP. Niestety shell windowsowy nie posiada instrukcji sleep, wiec musialbys ja sobie sam napisac:

#include <stdlib.h>

#include <windows.h>

int main(int argc, char **argv)

{

 DWORD Time;

 if (argc !=2)

   return -1;

 Time = atoi(argv[1]);

 if (Time==0)

   return -1;

 Sleep(Time);

 return 0;

}

 

Nastepnie korzystasz z tego, ze w Windowsie XP (i tylko w XP) masz instrukcje "tasklist", ktora zwraca Ci liste procesow. Teraz Twoj skrypt moze wygladac nastepujaco:

net use u: 
tms

call u:msofficeoffice2k_z_SR1.plinstalo2ksr1.bat

:: 1. Poczekaj az sie pojawi msiexec.exe

:czekaj1

set ERRORLEVEL=

tasklist | find "msiexec.exe" > nul

if %ERRORLEVEL%==0 goto dalej1

Sleep 100

goto czekaj1

:dalej1

:: 2. Poczekaj az zniknie msiexec.exe

set ERRORLEVEL=

tasklist | find "msiexec.exe" > nul

if %ERRORLEVEL%==1 goto dalej2

Sleep 100

goto dalej1

:dalej2

:: 3. Zainstaluj SP

u:msofficeoffice2k_z_SR1.plO2kSp3.exe /q

net use u: /delete

 

Krotkie wyjasnienie: powyzszy kod w C musisz sobie skompilowac do pliku o nazwie Sleep.exe. Ten plik umieszczasz np. w C:Windows albo C:WindowsSystem32. Jesli bys robil petle bez czekania, to Twoj plik *.cmd zabralby 100% mocy procesor i instalacja trwalaby godziny.

Kazdy program po zakonczeniu zwraca kod bledu. Ten kon jest zapisywany w zmiennej ERRORLEVEL. Find.exe jesli znajdzie szukany lancuch zwraca 0 a jesli nie to 1. No i to juz chyba wszystko...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wielkie dzięki ucel za rady i całe skrypty jesteś naprawdę wielki zwłaszcza że nikt inny nie podjął tematu, a sprawa jest dla mnie na prawdę dośc istotna.

Ale niestety musi być jak zwykle ziarenko goryczy bo chodzi o to że to ma chodzić na Windowsach 2000 Professional i tylko na takich [:/]

 

Da się zrobić ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na golym 2000 jak go Bill stworzyl - nie. Ale poszukaj sobie Win2000 Resource Kit - tam powinien byc tasklist. Nie pamietam tylko czy pod 2000 nazywa sie toto tasklist, listtask czy jeszcze jakos inaczej. Ale na pewno jest i dziala tak samo jak tasklist z XP. Przekopiowac do C:WindowsSystem32 albo katalogu z plikiem instalacyjnym i po sprawie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

CZ WAM

jaka jest komenda na WYSZUKIWANIE PLIKU. I jaka jest komenda na wysyłanie tego pliku na maila a jak się nieda wysłac to czy znacie jakieś programiki które można wkomponować w skrypta

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...