cmd से रनशेल कमांड को चलाते हैं


32

मैं cmd ​​से यह कमांड कैसे चला सकता हूं:

powershell.exe "(get-process | | {$ _। Description -eq" Sysinter Process Explorer ""}} का चयन करें। प्रक्रिया का नाम चुनें | out-file $ env: APPDATA \ example.txt "

मुझे अभी भी यह त्रुटि मिली है:

आपको '-eq' operato r के दाईं ओर एक मूल्य अभिव्यक्ति प्रदान करनी चाहिए। लाइन में: 1 char: 37 + (गेट-प्रोसेस | {$ _। विवरण -eq <<<< Sysinternals Process Explorer}) | प्रक्रिया का चयन करें | आउट-फाइल $ env: APPDATA \ example.txt + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordEx सीमेंट + फुलक्यूलाइफाइडएयरप्रिंट: ExpValueExpression


3
आपकी समस्या आपके उद्धरण चिह्नों का आंतरिक सेट हो सकती है। या तो उन्हें हटाने की कोशिश करें या यदि उनका उपयोग किया जाना चाहिए, तो इस आदमी का उपयोग करने का प्रयास करें: 'उर्फ एपोस्ट्रोफ इन द प्लेस।
डेथबायेंसर्स

2
चेतावनी - कृपया अपने पोस्ट में अश्लीलता का प्रयोग न करें। मैंने आपके लिए इसे हटा दिया है। ध्यान दें कि अन्य उपयोगकर्ताओं ने आपके पोस्ट को "असभ्य या अपमानजनक" के रूप में चिह्नित किया हो सकता है जिससे संभावित प्रतिनिधि हानि या निलंबन हो सकता है। कृपया पढ़ें अच्छा बनें "अभद्र नियम और कुछ भी करने से बचें यौन विचारोत्तेजक":
DavidPostill

जवाबों:


41
powershell -command "get-process | ? {$_.Description -eq 'Sysinter Process Explorer'} | select processname | out-file $env:APPDATA\example.txt"

मूल रूप से आपके पास एक पॉवरशेल कमांड है और इसे सीएमडी से कॉल करने के लिए इन कोट्स के बीच में पेस्ट करें

powershell -command " #PasteCodeHere "

इन उद्धरणों के अंदर आपको काम 'करना होगा अन्यथा यह आपके कमांड पैरामीटर को बाधित करेगा।

संपादित करें: अतिरिक्त जानकारी:

बहुत बार आप यह मुठभेड़ करेंगे: powershell -command "& 'somestuff'"

&फ़ाइल को कॉल करने के लिए उपयोग किया जाता है। जब आप केवल एक कमांड &का उपयोग कर रहे हैं , तो आप किसी स्क्रिप्ट को कॉल करना चाहते हैं, तो आपको इसका उपयोग करना चाहिए।

powershell -command "& 'C:\foobar.ps1'"

आप powershell -file C:\file.ps1एक स्क्रिप्ट को कॉल करने के लिए भी इस्तेमाल कर सकते हैं


आप सबसे अच्छे आदमी हैं <3 यह काम कर रहा है
कसम महमूद

3
यदि निष्पादित की जाने वाली कमांड में उद्धरण हैं, तो उन्हें दोगुना किया जाना चाहिए। उदाहरण: powerhell -command "dir" "c: \ Program Files" ""
Myobis

1
@myobis या आप बस सिंगल उद्धरण का उपयोग कर सकते हैंpowershell -command " dir 'C:\Program Files' "
साइमन

1
@myobis वास्तव में, उद्धरणों को दोगुना करने से काम नहीं होता (विंडोज 10 सेमी में)। लेकिन बैकस्लैश भागने से किया प्रयोग:powershell -command "dir \"c:\Program Files\" "
बुद्धिमानी

0

मैंने एज को रीसेट करने के लिए एक बैच फ़ाइल में निम्नलिखित कमांड रखे (जो समय-समय पर कुछ समस्याएं दे रहा है)। बैच फ़ाइल तब व्यवस्थापक स्तर पर चलाई गई थी। कृपया सशक्त रेखा में ट्रिपल उद्धरण नोट करें। यह उदाहरण "cmd" कमांड लाइन से एक पॉवरशेल कमांड चलाने की कोशिश करने वालों के लिए चीजों को स्पष्ट कर सकता है।

@echo off
c:
cd %userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe
rmdir /s /q 
userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe
powershell "Get-AppXPackage -AllUsers -Name Microsoft.MicrosoftEdge | Foreach 
{Add-AppxPackage -DisableDevelopmentMode -
  Register"""$($_.InstallLocation)\AppXManifest.xml""" -Verbose}"

पॉवर्सशेल लाइन में "ट्रिपल" उद्धरण नोट करें। जिस तरह से यह लाइन "प्रत्येक के लिए" और "-िस्टर" शब्द के साथ एक एकल पंक्ति है जो इस टिप्पणी-बॉक्स में शब्द-लपेटी गई है। यह एक एकल पंक्ति होनी चाहिए, हालांकि बैच फ़ाइल में (या कमांड लाइन पर यदि मैन्युअल रूप से एक cmdसत्र में टाइप किया गया है )।

महत्वपूर्ण बात यह है कि "पॉवरशेल" उल्टे अल्पविराम (") शब्द के बाद कमांड को शुरू करना और समाप्त करना और पारित होने वाले पावरशेल कमांड में पहले से मौजूद किसी भी आंतरिक उल्टे कोमा को" ट्रिपल "उद्धरण ( """) में बदल दिया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.