Taskkill jak napisać skrypt .bat

cze jak napisać skrypt .bat 

Który zabija wszystkie procesy jakie wpiszemy np w cmd wpisujemy skrypt.bat notepad.exe lub zamiast notepad coś innego

jak  nauczyć się pisać skrypty takie ?

 

 

“jak nauczyć się pisać skrypty takie ?” - najpierw naucz się korzystać z wyszukiwarki: http://lmgtfy.com/?q=kill+process+bat

zrobiłem  takie coś zabija wszystkie procesy co nie wpisze ale wyskakuje wiersz poleceń odrazu znika jak zrobić żeby on nie wyskakiwał? 

 

@echo off

start taskkill /im %1

Ty poważnie nawet google’a nie umiesz użyć ??

 

 

http://superuser.com/questions/140047/how-to-run-a-batch-file-without-launching-a-command-window

A po co tutaj start?

Czy nie potrafisz użyć googla?

To niewiedza jest dla ciebie!

A tak na prawdę.

Możesz użyć czekania na wypisanie procesów przez użytkownika. %1 to argument, to samo z %2, %3…%2100,%2101, czaisz?.

@ECHO OFF
echo Uwaga! Nie wprowadzaj procesów systemowych (takich jak explorer.exe), gdyż możesz wywołać BSOD, zawiesić system lub nawet go popsuć! Robisz to na własną odpowiedzialność!
echo Wprowadź nazwy procesów do zamknięcia
set/p "processes=>"
taskkill /IM %processes%

Omówienie:

  • @ECHO OFF - wyłączenie pokazywania komend
  • 1 i 2 linijka - 1: ostrzeżenie, 2: prośba o wprowadzenie procesów do zamknięcia
  • set/p “processes=>” - user (użytkownik) wprowadza dane, które są zapisywane do zmiennej processes
  • taskkill /IM %processes% - zamknięcie procesów ze zmiennej processes

Nie testowałem, gdyż nie mam dostępu do Windowsa (choć w domu mam jakieś 4 licencje (2xWindows 7, 1xWindows 8 i 1xWindowsa Vista po francusku (chyba)) i jedną przy sobie, ale nie lubię visty, a po francusku to już na pewno nie użyje).

 

Co do twojego kodu…

 

…to nawet nie jest dla windowsa.

  • @ECHO OFF jest ok
  • Najgorsze, czyli start taskkill, uruchomisz coś co będzie w oddzielnym procesie, a samo się zabija, choć…
  • %1 - czy zwariowałeś? argument choć nie zdefiniowany, argument definiujesz przy uruchamianiu czyli w cmd wpisujesz np. start zniszcz.bat usera.
  • /im nie istnieje. Jest tylko /IM
  • W windowsie wszystko ma znaczenie, nie tak jak w linuksie
  • Windowsa wiesz że łatwo popsuć? Tym popsujesz go, bo aż windows zgłupieje.
  • Angielski nie jest straszny, to samo z gigantem

Wersja z argumentami:

@ECHO OFF
echo Uwaga! Nie wprowadzaj procesów systemowych (takich jak explorer.exe) jako argument do tego skryptu, gdyż możesz wywołać BSOD, zawiesić system lub nawet go popsuć! Robisz to na własną odpowiedzialność!
taskkill /IM %1

nie no dzięki ci wielki tera wszystko prawie  zrozumiałem nie wiem jak mogę się odwdzięczyć .

A skąd ty wiedziałeś że taka nazwę trzeba wpisać “processes” ??

 

I to %1  to co oznacza bo napisałeś a nie kapuje tego i pod jaka komenda można wyczytać o tym ? komenda jak myślę to call /? tylko co ona oznacza te %1

 

bo to %1 ja zrozumiałem co pisałeś że tworze nowy plik np test.bat w nim wpisuje

@echo off 

taskkill /IM %1

zapisuje

 

otwieram cmd.exe i wpisuje w nim test.bat i np notepad.exe i mi zamyka ten proces o to chodzi z tym ?

Zmienną sam tworzysz, w tym przypadku Processes.

%1 to argument pierwszy.

Jak nie możesz ogarnąć to stwórz gdzieś plik argumenttest.bat

i w nim

@ECHO OFF
echo %1
pause>nul

Zapisz, włącz cmd, a w nim  cd <lokalizacja pliku argumenttest.bat>  i następnie  start argumenttest.bat Argument

Później wpisz  start argumenttest.bat Test

Sprawdź czy wyniki się różnią.

W obu nowych oknach wciśnij spację

Teraz rozumiesz?

 

Btw. o poleceniach lub o zmiennych jak %1 wyczytasz w google.

Przykładowa fraza do google dotycząca tej zmiennej

What is %1 in BATCH

czyli np wpisuje w test.bat Witaj %1 i w cmd start test.bat Patryk i w nowym oknie wyleci Witaj Patryk ??

Zadał byś jakieś zadania z plików wsadowych bym sie sprawdził bo mam mieć zaliczenie z tego ?

Nie za bardzo…ale blisko.

Tak by było, gdybyś miał wywoływać  start test.bat Patryk :

@ECHO OFF
echo Witaj %1
pause>nul

Wyjaśnienie:

  • @ECHO OFF - wyłączenie pokazywania komend
  • echo Witaj %1 - wyświetlenie ,Witaj Patryk" przez dopisanie do Witaj argumentu, który ma zapisane ,Patryk" (po przez wywołanie go razem z komendą/plikiem)
  • pause>nul - zwyczajna pauza, która NIE wyświetla tekstu

Skoro chcesz zadania to masz

  1. Stwórz plik BAT, który uruchomi instalator, który poda się jako argument %1
  2. Użyj IF EXIST do wywołania skryptu gdy istnieje plik z argumentu. Skrypt ma wykonać utworzenie katalogu ,kopieplik" i skopiowanie pliku z argumentu 3 razy
  3. Stwórz małą alternatywę dla windowsowego wiersza poleceń (podpowiedź: musisz poczytać o set/p, IF, funkcjach i o ich uruchamianiu) (min. 3 komendy).

Gotowe skrypty (zawartość pliku tylko) możesz wysłać na PW, ale jak chcesz.

Jak chcesz pomoc z tym to na PW.