मैं चाहता हूँ, डिफ़ॉल्ट रूप से, PowerShell के लिए कमांड के बजाय लॉन्च किया जाए, जब कहो, बैच फ़ाइल चला रहा हो, या जब मैं "ओपन कमांड विंडो यहाँ", आदि।
कोई सुझाव?
मैं चाहता हूँ, डिफ़ॉल्ट रूप से, PowerShell के लिए कमांड के बजाय लॉन्च किया जाए, जब कहो, बैच फ़ाइल चला रहा हो, या जब मैं "ओपन कमांड विंडो यहाँ", आदि।
कोई सुझाव?
जवाबों:
मैंने अभी बहुत जल्दी परीक्षण किया है और निम्नलिखित रजिस्ट्री प्रविष्टि में "फ़ोल्डर्स में" सभी फ़ोल्डर के संदर्भ मेनू में "PowerShell यहां" आइटम जोड़ा जाएगा:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere]
@="&PowerShell here"
[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="cmd.exe /c start \"PS\" powershell.exe -NoExit -Command \"cd \\\"%1\\\"\""
बस इसे रजिस्ट्री में आयात करें। cmd.exeपथ को हार्ड-कोड करने से बचने के लिए मैं बूटस्ट्रैप पॉवरशेल का उपयोग कर रहा हूं ।
Cmd स्क्रिप्ट / बैच फ़ाइलों के बारे में। मुझे लगता है कि डिफ़ॉल्ट रूप से PowerShell के भीतर CMD स्क्रिप्ट को चलाने के लिए यह बहुत मायने नहीं रखता है। लेकिन यह HKCR\cmdfile\shell\openरजिस्ट्री कुंजी को संशोधित करके संभव हो सकता है
आप PowerShell में CMD बैच फ़ाइलों को चलाने के साथ बहुत दूर नहीं जा रहे हैं।
आप %COMSPEC%चर का powershell.exeउपयोग करने के लिए इंगित करने के लिए परिवर्तन करने का प्रयास कर सकते हैं setx, लेकिन मुझे नहीं लगता कि आपको यह महसूस करने में लंबा समय लगेगा कि यह वास्तव में एक बुरा विचार है और इसे फिर से बदल दें।
* .bat के बजाय * .ps1 के रूप में फाइल को सेव करें और यह पॉवरशेल का उपयोग करेगा
%COMSPEC%एक गैर-सीएमडी-संगत शेल में बदलने के लिए प्रयोग नहीं किया है , लेकिन मुझे लगता है कि इसे PowerShell में बदलने के परिणामस्वरूप .cmd/ .batफ़ाइलें PowerShell में निष्पादित करने का प्रयास करेगी , इसलिए वे विफल हो जाएंगे । मैंने बहुत सारे सॉफ़्टवेयर स्थापित किए हैं जिन्हें बैच फ़ाइलों का उपयोग करने की आवश्यकता है, इसलिए ऐसा करना एक बुरा विचार होगा। इसके अलावा, मैं थोड़ा पक्षपाती हूं, जैसा कि मैं हर समय सीएमडी का उपयोग करता हूं (वास्तव में, टीसीसी, जो एक विस्तारित सुपरसेट है), हर रोज फाइल प्रबंधन के लिए - मैं केवल सिस्टम सामान के लिए पॉवरशेल का उपयोग करता हूं, हालांकि मेरे पास सीखने के लिए बहुत कुछ है, जैसा कि यह तुलना में इतना शक्तिशाली है।
%ComSpec%अपने Win7 सिस्टम पर PowerShell को इंगित करने के लिए बदल गया हूं। पहली जोड़ी की .cmdफाइलों का परीक्षण मैंने ठीक काम किया। वे cmdविशिष्ट निर्माण ( for, परिवर्तनीय हेरफेर if) शामिल करते हैं, इसलिए PS स्पष्ट रूप से यह जानने के लिए पर्याप्त स्मार्ट है कि उसे कब आह्वान करना है cmd.exe।
%ComSpec%पॉवरशेल में बदलने से मर्क्यूरियल वर्जन कंट्रोल कमांड्स टूट जाती हैं।