2008-11-18 11 views
8

Próbuję odczytać wartość z pliku i użyć go w kolejnym poleceniu.Odczytywanie wartości z pliku w skrypcie wsadowym Windows

Mam plik o nazwie AppServer.pid, który zawiera identyfikator procesu mojego serwera aplikacji (tylko numer, nie jest to plik właściwości ani nic w tym stylu).

Serwer aplikacji zawiesił się, więc chcę wziąć tę wartość i przekazać ją do komendy kill. Tak więc mój skrypt będzie podobny do skryptu systemu Windows XP. Czy istnieje wygodny sposób wykonania tej czynności w skryptach systemu Windows?

Odpowiedz

12

to działa:

SET /P VALUE_FROM_FILE= < AppServer.pid 
taskkill /pid %VALUE_FROM_FILE% /f 

Parametr/P używany SET pozwala ustawić wartość parametru za pomocą wejścia od użytkownika (lub w tym przypadku, wejście z pliku)

+0

Dzięki. Jest to prawdopodobnie bardziej proste rozwiązanie. –

+0

jeśli uruchomisz go kilka razy, zajmie to poprzednią wartość, ale nie bieżącą. To jak to działa dla mnie. – ses

2
for /f %%G in (appid.txt) do (SET PID=%%G) 
echo %PID% 
taskkill etc here... 

To może pomóc!

1

Jeśli znasz nazwę procesu, zwróconą przez komendę tasklist, możesz uruchomić taskkill z filtrem nazwy procesu, tj. /FI IMAGENAME eq %process_name%.

Na przykład, aby zabić wszystkie procesy o nazwie nginx.exe run:

taskkill /F /FI "IMAGENAME eq nginx.exe" 

Który „brzmi w języku angielskim”: zabić wszystkich zadań (siłą w razie potrzeby poprzez /F), które pasują do filtra /FI „imageName równa nginx .exe ".

Powiązane problemy