दिलचस्प पोस्ट
C # DllImport C ++ बूलियन फ़ंक्शन के साथ ठीक से नहीं लौट रहा है आर में कच्चे एचटीएमएल से डेटा निकालें XCode 5 परिनियोजन लक्ष्य केवल iOS 7 तक सीमित है स्ट्रिंग कैपिटलाइज़ करें PHP में एक सरणी के सबसेट ढूँढना एललिस्टिकशैर्क में एक खोज से डुप्लिकेट दस्तावेज़ निकालें ऐप बंद कर दिया जाता है जब पुश सूचनाओं को संभालने नेटबीन्स – त्रुटि: मुख्य वर्ग को नहीं खोज या लोड नहीं किया जा सका पाठ को पीडीएफ में परिवर्तित करने के लिए पायथन मॉड्यूल मेज लॉक किए बिना वैकल्पिक टेबल? क्या रूबी में प्रदर्शन के लिए & method (: method_name) मुहावरे खराब है? एक्शन बार पर एक्शन मद icons के बीच रिक्ति को कम करने का कोई तरीका है? पायथन स्ट्रिंग स्वरूपण:% बनाम। प्रारूप जावा के साथ आरएआर अभिलेखागार Chrome.tabs.query को कॉल करने के बाद, परिणाम उपलब्ध नहीं हैं

कमांड लाइन से लॉन्च करते समय पीआईडी ​​की प्रक्रिया को कैद कैसे करें?

क्या यह एक .bat फ़ाइल में विशुद्ध रूप से करने का एक तरीका है?

इसका उद्देश्य iexplore.exe को लॉन्च करना है, फिर इसे समाप्त होने पर उस उदाहरण को मार डालें।

Solutions Collecting From Web of "कमांड लाइन से लॉन्च करते समय पीआईडी ​​की प्रक्रिया को कैद कैसे करें?"

यहां मैं जो उपयोग करता हूं:

 @echo off rem there is a tab in the file at the end of the line below set tab= set cmd=javaw -jar lib\MyProg.jar set dir=%~dp0 echo Starting MyProg set pid=notfound for /F "usebackq tokens=1,2 delims=;=%tab% " %%i in ( `wmic process call create "%cmd%"^, "%dir%"` ) do ( if /I %%i EQU ProcessId ( set pid=%%j ) ) echo %pid% > MyProg.pid 

निर्देशिका को निर्देशिका में सेट किया जाता है जो कि सीएमडी फ़ाइल में स्थित है। इसे बदलने के लिए dir बदलें। कमांड चलाए जाने के लिए cmd को संशोधित cmd

अगर आप इसे रोकते हैं stop.cmd चाहते हैं, तो यह इस तरह दिखाई देगा

 @echo off for /F %%i in (%~dsp0MyProg.pid) do taskkill /F /PID %%i del %~dsp0MyProg.pid 

आप vbscript का उपयोग कर सकते हैं, यहां नोटपैड बनाने का एक उदाहरण है, उसके बाद इसे अपने pid का उपयोग कर समाप्त कर दिया गया है

 strComputer = "." Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("notepad.exe", null, objConfig, PID) If errReturn = 0 Then WScript.Echo "Process ID is: " & PID End If WScript.Echo "Ready to kill process: " & PID & "? [Y|y]" Do While Not WScript.StdIn.AtEndOfLine strInput = strInput & WScript.StdIn.Read(1) Loop If LCase(strInput) = "y" Then WScript.Echo "Select * from Win32_Process Where ProcessId = '" & PID & "'" Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessId = '" & PID & "'") For Each objProcess in colProcessList objProcess.Terminate() Next End If 

myscript.vbs और कमांड लाइन पर सहेजें

 c:\test> cscript /nologo myscript.vbs 

उम्म , कार्यसूची और कार्यकुशल ?!

@केबेर्नेटिकोस द्वारा दिए गए उत्तर पर एक मामूली बदलाव क्योंकि इसकी एक पार्सिंग समस्या है नोट करें कि लाइन if %%j gr 0 (

 @echo off rem there is a tab in the file at the end of the line below set tab= set cmd=javaw -jar lib\MyProg.jar set dir=%~dp0 echo Starting MyProg set pid=notfound for /F "usebackq tokens=1,2 delims=;=%tab% " %%i in ( `wmic process call create "%cmd%"^, "%dir%"` ) do ( if %%j gtr 0 ( set pid=%%j ) ) echo %pid% > MyProg.pid 

कुछ कारणों से आपका प्रोसेस आईडी प्राप्त करने का दृष्टिकोण मेरे लिए काम नहीं करता है, लेकिन जब से मैं बैच में विशेषज्ञ हूं, तो मैंने अपना अपना कोड लगाया है, जो यहां सम्मिलित है:

 @echo off call:AsyncCmd rem call:AsyncCmd "echo hello world" rem call:AsyncCmd "call build.bat" exit /b rem ------------------------------------------------------------------------------------------ rem Starts asynchronous command execution rem %1 is command, if empty - only aborts existing build. rem ------------------------------------------------------------------------------------------ :AsyncCmd if exist %~dp0SetupBuild_Completed.txt ( del /f %~dp0SetupBuild_Pid.txt >nul 2>&1 del /f %~dp0SetupBuild_Completed.txt >nul 2>&1 ) if not exist %~dp0SetupBuild_Pid.txt goto lStartProc rem -------------------------------------------------- rem Abort build process rem -------------------------------------------------- set /p pid=<%~dp0SetupBuild_Pid.txt echo Cancelling setup build process, process id %pid% pskill -t %pid% del /f %~dp0SetupBuild_Pid.txt >nul 2>&1 :lStartProc if "%~1" == "" exit /b 0 rem -------------------------------------------------- rem Starts asyncronous build process rem -------------------------------------------------- set dir=%~dp0 set dir=%dir:~0,-1% for /f "tokens=2 delims==; " %%a in ('wmic process call create "cmd /c mincon.exe && %~1 && echo 1>%~dp0SetupBuild_Completed.txt"^, "%dir%" ^| findstr /r "ProcessId"') do set pid=%%a echo Setup build started, process id: %pid% echo %pid%>%~dp0SetupBuild_Pid.txt exit /b 0 

मुझे लगता है कि आप साधारण कमांड लाइन उपयोगिताओं के साथ ऐसा नहीं कर सकते हैं, क्योंकि आईई वास्तव में प्रत्येक टैब के लिए बाल प्रक्रियाएं पैदा करता है, अर्थात अगर IE अभी तक नहीं चल रहा है, तो आपको एक माता-पिता IE प्रक्रिया और टैब के लिए एक बाल प्रक्रिया मिलेगी, और यदि IE पहले से ही चल रहा है आप केवल एक एकल बच्चे की प्रक्रिया प्राप्त करेंगे

जब आप किसी बच्चे (टैब) की प्रक्रिया को मारते हैं, तो आईई स्वचालित रूप से इस टैब को पुनर्प्राप्त करेगा I

यह भी संबंधित प्रश्न देखें: नए बनाए गए IE8 विंडो की प्रक्रिया कैसे प्राप्त करें? (हालांकि वहाँ कोई अच्छा जवाब नहीं है)।

अधिकतर आप यह जानते हैं कि आप किस कार्य शुरू करते हैं – इस मामले में, जो पृष्ठ IExplorer दिखाएगा।

तो कैसे के बारे में

 taskkill /FI "Windowtitle eq *yourpagetitle*" 

यह आपके पृष्ठ का शीर्षक दिखाने के कुछ उदाहरणों को मार देगा, लेकिन एक विशिष्ट शीर्षक के साथ प्रायः एक ही होना चाहिए।

टॉम