आप PowerShell की डिफ़ॉल्ट निर्देशिका कैसे सेट करते हैं?


108

क्या PowerShell का डिफ़ॉल्ट स्थान बदलने का कोई तरीका है?

आप PowerShell के डिफ़ॉल्ट कार्य निर्देशिका को कैसे सेट करते हैं?


1
यहां एक तरीका है जिसे आप शॉर्टकट को संपादित करके कर सकते हैं: stackoverflow.com/questions/18726981/…
ब्लंडरिंग फिलोसोफर

@BlunderingPhilosopher git shell के लिए है ..?
विवेक चावड़ा

जवाबों:


61

PowerShell शुरू करने पर आप निर्देशिका को खोलने के लिए निर्दिष्ट कर सकते हैं:

powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"

बस इसे अपने शॉर्टकट में उपयोग करें।

या एक निर्देशिका शुरू करने के लिए एक प्रोफाइल का उपयोग करें ।


5
पीएस कोर के लिए:pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
सर्गेई ज्यकोव

"C: \ Program Files \ PowerShell \ 6 \ pwsh.exe" -WorkingDirectory D: \ test
cem

179

एक PowerShell प्रोफ़ाइल निम्नानुसार बनाएँ ।

  1. PowerShell को व्यवस्थापक के रूप में चलाएँ और निम्न आदेश निष्पादित करें:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

    यह PowerShell को इंटरनेट से डाउनलोड की गई स्थानीय स्क्रिप्ट और स्क्रिप्ट को चलाने की अनुमति देगा, जिन पर हस्ताक्षर किए गए हैं। प्रलेखन में इस कमांड के बारे में और पढ़ें ।

  2. अपने Documentsफ़ोल्डर में, WindowsPowerShellक्लासिक पॉवरशेल या के लिए नामित फ़ोल्डर ढूंढेंPowerShell नए PowerShell Core के लिए । यदि यह मौजूद नहीं है, तो यह ठीक है; बस इसे बनाएँ।

  3. फ़ोल्डर profile.ps1में नाम WindowsPowerShell(या PowerShellPowerShell कोर के लिए) एक नई फ़ाइल बनाएँ ।
  4. profile.ps1अपनी डिफ़ॉल्ट कार्य निर्देशिका को सेट करने के लिए निम्न कमांड खोलें और जोड़ें:

    Set-Location C:\my\default\working\directory
  5. एक नई PowerShell विंडो खोलें ... परिवर्तनों को प्रभावी होना चाहिए।


1
मैंने यह कोशिश की, लेकिन "प्रोफाइल .ps1 लोड नहीं किया जा सकता क्योंकि स्क्रिप्ट्स अक्षम है"। क्या सुरक्षित स्क्रिप्ट को सक्षम करने के लिए "सुरक्षित" तरीका है?
जॉन लिटिल

3
इसे चलाएँ: "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned" आप इसके बारे में यहां पढ़ सकते हैं: Technet.microsoft.com/en-us/library/ee176961.aspx यह इंटरनेट से डाउनलोड की गई स्क्रिप्ट को चलाने की अनुमति नहीं देता है जब तक कि वे एक विश्वसनीय से नहीं आते हैं। स्रोत।
LLL

7
यह वास्तव में ऐसा करने का एक बुरा तरीका है क्योंकि यदि आपके पास उदाहरण के लिए एक बिल्ड स्क्रिप्ट है (जैसे दृश्य स्टूडियो बिल्ड स्क्रिप्ट) और आप एक ps कमांड चलाना चाहते हैं, तो कमांड की कार्यशील निर्देशिका उस स्थान पर सेट हो जाएगी, इसलिए यह मूल रूप से होगा सभी लिपियों को powershell -File "myscript.ps1"
तोड़कर पॉवरशेल

2
यदि यह एक बुरा विकल्प है, तो क्या इसे करने का एक बेहतर / सुरक्षित तरीका है?
आदम_जी

4
मुझे अपने आप को ठीक करने दो। जब बिल्ड के लिए पॉवरशेल स्क्रिप्ट्स लिखते हैं, तो हमेशा उपयोग करें -NoProfile विकल्प जैसेpowershel -NoProfile -File "myscript.ps1"
Santhos

33

मैंने सफलता के बिना विंडोज सर्वर 2016 में उपरोक्त उत्तर की कोशिश की थी।

लेकिन मुझे यह दृष्टिकोण मिला (यह विंडोज 10 के लिए भी ऐसा ही होना चाहिए) मेरे लिए काम कर रहा है।

  1. PowerShell सत्र प्रारंभ करें
  2. टास्कबार में, एक लिंक रखने के लिए राइट-क्लिक करें और पिन करें
  3. फिर से टास्कबार में आइकन पर राइट-क्लिक करें और फिर विंडोज पावरशेल पर राइट-क्लिक करें और गुण चुनें
  4. प्रारंभ में अपनी पसंदीदा निर्देशिका दर्ज करें : इनपुट फ़ील्ड और ओके दबाएं
  5. टास्कबार आइकन से शुरू करें

किया हुआ!

उसी गुण संवाद में आप कई अन्य सेटिंग्स जैसे फोंट, रंग, आकार और बटन के माध्यम से वहां शॉर्टकट टैब पर भी बदल सकते हैं Advanced। आप चुन सकते हैं कि पॉवरशेल सत्र व्यवस्थापक विशेषाधिकारों के साथ चलाया जाए।


5
जब आप उन्नत मेनू Run as administratorमें जांच करते हैं, तो कार्यशील निर्देशिका को बदलना काम नहीं लगता है .lnk। समाधान यहां लगता है कि stackoverflow.com/questions/31622469/…
Santhos

यह अजीब है, क्योंकि यह यहाँ काम करता है। बस dir बदलने Run as aministratorऔर आगे और पीछे चेकबॉक्स बदलने के साथ परीक्षण किया गया ।
नोंगराऊ

एक आकर्षण काम करता है। धन्यवाद।
यासर शेख

12

डिफ़ॉल्ट निर्देशिका सेट करने का एक आसान तरीका निम्नलिखित है:

  1. Windows PowerShell आइकन पर राइट क्लिक करें और स्टार्ट पर पिन करें
  2. प्रारंभ में Windows PowerShell आइकन पर राइट-क्लिक करें, और फिर से Windows PowerShell पर राइट क्लिक करें और गुण चुनें ( व्यवस्थापक के रूप मेंचलाएं और Windows PowerShell ISE )

    यहां छवि विवरण दर्ज करें

    1. में शॉर्टकट टैब - क्षेत्र 'में प्रारंभ'>, स्थान के लिए परिवर्तन आप PowerShell में शुरू करना चाहते हैं।

    यहां छवि विवरण दर्ज करें


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

4

Set-Locationअपनी प्रोफ़ाइल में डालने से बिना कार्यशील वर्तमान निर्देशिका बदल जाएगी, जिसके स्क्रिप्ट के लिए कार्यशील निर्देशिका के संबंध में अवांछित परिणाम हो सकते हैं जिसे आप "रन विद पॉवरशेल" के माध्यम से निष्पादित करते हैं।

वैकल्पिक रूप से .lnkआम तौर पर पाई जाने वाली फ़ाइलों को PowerShell में बदलने के लिए एक वैकल्पिक समाधान है %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell। एक लिंक पर राइट क्लिक करें, और %HOMEDRIVE%%HOMEPATH%अपनी इच्छित निर्देशिका से कार्यशील निर्देशिका को बदलें ।


1
जब आप उन्नत मेनू Run as administratorमें जांच करते हैं, तो कार्यशील निर्देशिका को बदलना काम नहीं लगता है .lnk। समाधान यहाँ stackoverflow.com/questions/31622469/…
Santhos

यह सबसे अच्छा समाधान है (मेरे लिए, कम से कम)।
एंडर्स अरपी

इसीलिए स्क्रिप्ट को -NoProfileविकल्प का उपयोग करना चाहिए जैसे powershell -NoProfile -File "myscript.ps1"
Santhos

4

इसे PowerShell में लिखें:

New-Item -path $profile -type file force

यह PowerShell फ़ोल्डर में एक .ps1 फ़ाइल बनाता है। इसे खोलें, और इसे इस रूप में संपादित करें:

Set-location C:\files

किया हुआ

इस लिंक का संदर्भ लें। यह बढ़िया काम करता है।

PowerShell प्रारंभ निर्देशिका बदलें


3

पिछले उत्तरों में बताए अनुसार कार्यशील निर्देशिका को बिना शर्त बदलने के बजाय, आप Set-Locationजब भी आवश्यक हो, कार्यशील निर्देशिका को जल्दी से बदलने के लिए उपयोग करने के लिए PowerShell प्रोफ़ाइल में एक साधारण फ़ंक्शन लिख सकते हैं ।

PowerShell प्रोफ़ाइल बनाने / संशोधित करने के लिए जेरेमी डैनो के उत्तर की जाँच करें ।

अपने PowerShell प्रोफ़ाइल में एक फ़ंक्शन जोड़ें

function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}

बस फ़ंक्शन नाम और निर्देशिका को इंगित करने के लिए बदलें। यदि रिक्त स्थान हैं तो पथ पर उद्धरण का उपयोग करना अनिवार्य है। मैं उपसर्ग रखने की कोशिश करता हूं goto_क्योंकि यह फ़ंक्शन के नामों को याद रखने में मदद करता है।

आप goto_सभी प्रारंभ किए गए फ़ंक्शंस के माध्यम से टाइप करने के लिए TAB को टाइप करना शुरू कर सकते हैं (फ़ंक्शन जोड़ने / संशोधित करने के बाद एक नई PowerShell विंडो शुरू करने के लिए याद रखें)।


1

केवल कमांड लाइन का उपयोग करते हुए, यदि कोई फ़ाइल पहले से मौजूद है तो वह उसमें संलग्न हो जाएगी:

$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1

1

इसके साथ, "वर्किंग डाइरेक्टरी" और पॉवरशेल के "लोकेशन" पर कुछ भ्रम होने लगता है। यहां ज्यादातर लोग क्या कर रहे हैं, और करने के लिए कह रहे हैं पॉवरशेल के "स्थान" को बदल दें। "वर्किंग डायरेक्टरी" वास्तव में अलग है। यहाँ एक लेख है जो इसे समझाता है।

उन लोगों के लिए जो लेख नहीं पढ़ना चाहते हैं: PowerShell खोलें और दूसरों ने जो करने के लिए कहा है उसका उपयोग करें Set-Location "C:\some\directory"। ध्यान दें कि आपकी "वर्किंग डाइरेक्टरी" अभी भी वही है जहाँ आपका पॉवरशेल खोला गया था। या तो "~"या "%SYSTEMROOT%\system32"पर अगर आप व्यवस्थापक के रूप में है या नहीं भागा निर्भर करता है। कार्यशील निर्देशिका की जांच करने के लिए, का उपयोग करें [Environment]::CurrentDirectory

नोट: लेख में लेखक इस कमांड का उपयोग करके "वर्किंग डायरेक्टरी" की जाँच करने के लिए कहता है:

\[Environment\]::CurrentDirectory

मुझे यकीन नहीं है कि यह पुराने PowerShell संस्करणों के साथ काम करता है, लेकिन PowerShell 5 के साथ (और बाद में) आपको उपयोग करना होगा [Environment]::CurrentDirectory


0

अपने Profile.ps1 में पहली पंक्ति बनाएं और PowerShell Core (pwsh) उस निर्देशिका में खुल जाएगा, जिसमें आप वर्तमान में काम कर रहे हैं:

सेट-लोकेशन (स्थान प्राप्त करें) .पथ


0

राइट-आउटपुट "सेट-लोकेशन C: \" >> $ प्रोफ़ाइल


0

यह समाधान वर्तमान कार्यशील फ़ोल्डर को उस स्थान पर सेट करता है जहाँ स्क्रिप्ट स्थित है। अपनी स्क्रिप्ट की शुरुआत में या कम से कम स्थान पथ पर निर्भर कमांड का उपयोग करने का प्रयास करने से पहले सुनिश्चित करें।

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