Gå til innhold

Anbefalte innlegg

jeg prøver og lage en script som vill lese fra ett text-dokument, analysere hvis linjen starter med "rem" (og i isåfall, ignorere det), der har jeg litt problemer...

 

rem credit to aklla "for" the code ^^
@echo off
for /F  "delims=~" %%b IN (C:\ProcessList.txt) DO if %%b GTR rem (
rem its a rem...¨
echo ITS A REM!!!!
echo THIS: %%b is a rem!!
) ELSE (
taskkill /IM "%%b" /F
)
pause

(de 2 echo'ene under rem er bare for testing)

 

nå.. det virker mesteparten av tiden, men "GTR rem" virker også på... noen random? ord

fex:

"smss.exe" er "rem~"

"crss.exe" er ikke rem

"sqlservr.exe" er "rem~"

"bdss.exe" er ikke "rem~"

"YahooMessenger.exe" er "rem~"

 

og jeg aner ikke hvorfor pokker den kaller noen ord [som ikke engang inneholder ordene "rem"] for rem~

noen som har noen svar/ider om en annen måte og gjøre det på/somthin else? :)

Endret av Hans_Henrik
Lenke til kommentar
Videoannonse
Annonse

hei, her et et batch script som kanskje gjør det du forsøker på?: Det er en "add-on" til taskkill.exe, slik at vi for eksempel kan skrive:

tk.bat word

 

og winWORD.exe, WORDpad.exe etc vil avsluttes.

 

 

@echo off

set procToKill=%1
if "%procToKill%"=="" goto :ShowHelp
if "%1"=="/?" goto :ShowHelp

FOR /F "tokens=1,2 delims= " %%G IN ('tasklist /nh^|find /i "%procToKill%"' ) do call :KillProc %%G %%H
goto :END

:KillProc
rem Input is processname (%1) and PID (%2)
if "%2"=="" goto :EOF
rem echo killing process (%1) with pid (%2)
taskkill /F /PID %2
goto :EOF
:EOF


:ShowHelp
echo Grep process killer. 
echo Specify name (or part of name) of process to kill.
goto :END

:END

 

om du forøvrig bytter ut taskkill med fkill (gnu sak, minst dobbel så rask) og tasklist med pslist, får får du kjappere script.

 

ang spm ditt om å sjekke for en string i en annen string, ser dette ut til å virke (men en stygg løsning?). Ser på errorlevel fra find kommandoen. Errorlevel inneholder returverdi fra siste kommando som ble kjørt.

@echo off
rem test the function
call :CheckForSubstr abc123def 123
goto :END

:CheckForSubstr
rem %1 is string to search, %2 is substring to search for
echo %1 | find /i "%2" 1>NUL
if %ERRORLEVEL% EQU 0 echo found (%2) in (%1)
rem ..do whatever
call :EOF
:EOF



:END

Lenke til kommentar

@trtrtr

FOR /F "tokens=1,2 delims= " %%G IN ('tasklist /nh^|find /i "%procToKill%"' ) do call :KillProc %%G %%H

"tasklist" skal det være till txt filen? (som C:\List.txt) ?

edit: og... fant ikke noe sted og laste ned fkill.exe

fant denne source-koden da ^^

 

@aklla

vell, den "for" scripten hjalp meg da :p

første gang jeg sjekka "help for"

Endret av Hans_Henrik
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...