PowerShellのデフォルトディレクトリをどのように設定しますか?


108

PowerShellのデフォルトの場所を変更する方法はありますか?

PowerShellのデフォルトの作業ディレクトリをどのように設定しますか?


1
:ここでは、ショートカットの編集を経てそれを行うことができます方法ですstackoverflow.com/questions/18726981/...
賢者不精巧

@BlunderingPhilosopher git shellのためのものです。
Vivek Chavda 2017

回答:


61

PowerShellの起動時に開くディレクトリを指定できます。

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

ショートカットで使用してください。

または、プロファイルを使用て開始ディレクトリを設定します。


5
PSコアの場合:pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
Sergey Zykov、

"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新しいPowerShellのコアのために。それが存在しなくても問題ありません。作成してください。

  3. フォルダに名前が付けられた新しいファイルを作成profile.ps1WindowsPowerShellます(またはPowerShell PowerShellのコアのために)。
  4. profile.ps1次のコマンドを開いて追加し、デフォルトの作業ディレクトリを設定します。

    Set-Location C:\my\default\working\directory
  5. 新しいPowerShellウィンドウを開きます...変更が反映されているはずです。


1
これを試しましたが、「スクリプトの実行が無効になっているため、profile.ps1をロードできません」と表示されます。安全なスクリプトを有効にする「安全な」方法はありますか?
John Little

3
これを実行してください: "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned" これについては、こちらで読むことができます:technet.microsoft.com/en-us/library/ee176961.aspxインターネットからダウンロードされたスクリプトは、信頼されたものからのものでない限り、実行できませんソース。
LLL 2017年

7
これは、たとえばVisual Studioビルドスクリプトなどのビルドスクリプトがあり、psコマンドを実行する場合、コマンドの作業ディレクトリがその場所に設定されるため、これを行うには本当に悪い方法です。次のようにpowershell -File "myscript.ps1"
powershell

2
それが悪いオプションである場合、それを行うためのより良い/より安全な方法はありますか?
Adam_G 2017

4
自分で訂正させてください。ビルド用などのPowerShellスクリプトを作成する場合は、常に-NoProfileオプションを使用しますpowershel -NoProfile -File "myscript.ps1"
Santhos

33

私はWindows Server 2016で上記の答えを試しましたが、成功しませんでした。

しかし、私はこのアプローチ(Windows 10でも同じであるはずです)がうまくいくことに気づきました。

  1. PowerShellセッションを開始する
  2. タスクバーで、右クリックしてピン留めし、そこにリンクを維持します
  3. もう一度タスクバーのアイコンを右クリックしてから、Windows PowerShellを右クリックして[ プロパティ ] を選択します
  4. [スタート]に希望のディレクトリを入力します入力フィールドに OKを押します
  5. タスクバーアイコンから開始

できた!

同じ[ プロパティ ]ダイアログで、フォント、色、サイズなどのその他の多くの設定を変更したり、[ ショートカット ]タブの[ボタン]を使用したりすることもできますAdvanced。そのPowerShellセッションを管理者権限で実行するかどうかを選択できます。


5
あなたがチェックしたときに作業ディレクトリを変更すると、動作していないようRun as administrator.lnk、高度なメニュー。解決策はここにあるように思わstackoverflow.com/questions/31622469/...
Santhos

これは奇妙です。ここで機能するからです。dirを変更し、Run as aministratorチェックボックスを前後に変更してテストしたところです。
neongrau 2017

魅力的な作品。ありがとう。
Yasser Shaikh 2017年

12

デフォルトのディレクトリを設定する簡単な方法は次のとおりです。

  1. Windows PowerShellアイコンを右クリックして、スタートにピン留めします
  2. [スタート]でWindows PowerShellアイコンを右クリックし、もう一度[Windows PowerShell]を右クリックして、[プロパティ]を選択します(管理者として実行せず、Windows PowerShell ISEではありません)。

    ここに画像の説明を入力してください

    1. [ショートカット ]タブ-フィールド、あなたはPowerShellがで起動したい場所への変更>「でスタート」。

    ここに画像の説明を入力してください


ああ、ありがとう、私はこの答えが好きです。「デフォルト」として設定された理由とディレクトリを理解するのに役立ちました。このソリューションは、プロファイルをロードするオーバーヘッドの時間コストもわずかに削減すると思います(それが真であるかどうかはわかりませんが、そのように感じます)。
ジェニングス

4

置くSet-Locationあなたのプロフィールには、無条件にあなたが「PowerShellを使用して実行」を介して実行されることをスクリプトの作業ディレクトリに関しては、不要な結果をもたらす可能性がある現在の作業ディレクトリを変更します。

別の解決策は、.lnkファイルの作業ディレクトリを通常にあるPowerShell に変更することです%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell。リンクを右クリックし、作業ディレクトリを%HOMEDRIVE%%HOMEPATH%目的のディレクトリに変更します。


1
あなたがチェックしたときに作業ディレクトリを変更すると、動作していないようRun as administrator.lnk、高度なメニュー。解決策はここにあるようですstackoverflow.com/questions/31622469/…–
Santhos

これは最良の解決策です(少なくとも私にとっては)。
アンデルスアルピ2017

そのため、スクリプトでは次の-NoProfileようなオプションを使用する必要があります powershell -NoProfile -File "myscript.ps1"
Santhos '31

4

これをPowerShellに入力します。

New-Item -path $profile -type file force

PowerShellフォルダーに.ps1ファイルを作成します。それを開き、次のように編集します。

Set-location C:\files

できた

このリンクを参照してください。正常に動作します。

PowerShell開始ディレクトリを変更する


3

以前の回答で述べたように無条件に作業ディレクトリを変更する代わりに、PowerShellプロファイルに簡単な関数を記述して、Set-Location必要に応じて作業ディレクトリをすばやく変更することができます。

PowerShellプロファイルを作成/変更するには、Jeremy Danyowの回答を確認してください。

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の「場所」に多少の混乱があるようです。ここでほとんどの人がやっていること、そして言うことはPowerShellの「場所」を変更することです。「作業ディレクトリ」は実際には異なります。ここで記事にそれを説明しています。

記事を読みたくない人のために:PowerShellを開いて、他の人が言ったことを使用してくださいSet-Location "C:\some\directory"。「作業ディレクトリ」は、PowerShellが開かれた場所のままです。どちらか"~"または"%SYSTEMROOT%\system32"管理者として実行されたかどうかが異なります。作業ディレクトリを確認するには、を使用します[Environment]::CurrentDirectory

注:記事では、作者は次のコマンドを使用して「作業ディレクトリ」を確認すると述べています。

\[Environment\]::CurrentDirectory

これが古いバージョンのPowerShellで機能するかどうかはわかりませんが、PowerShell 5以降ではを使用する必要があります[Environment]::CurrentDirectory


0

これをProfile.ps1の最初の行にすると、現在作業しているディレクトリでPowerShell Core(pwsh)が開きます。

set-location(get-location).path



0

このソリューションは、現在の作業フォルダーをスクリプトが配置されている場所に設定します。スクリプトの最初、または少なくとも場所のパスに依存するコマンドを使用する前に配置してください。

Set-Location (Split-Path $MyInvocation.MyCommand.Path)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.