PowerShellで$ HOMEを設定する


29

PowerShellを開くたびにデフォルトのホームディレクトリを「C:\ Users \ khornsby」に変更するにはどうすればよいですか?

Windows 7を実行しています。以下は、環境の状態に関する情報です。

Windows PowerShell
Copyright(C)2009 Microsoft Corporation。全著作権所有。

PS P:\> cd ~
PS P:\>echo $HOME
P:\
PS P:\> HOME="C:\Users\khornsby"
「HOME = C:\ Users \ khornsby」という用語は、コマンドレットの名前として認識されません。
関数、スクリプトファイル、または操作可能なプログラム。名前のつづりを確認する、または
パスが含まれていた場合は、パスが正しいことを確認して再試行してください。
1行目:1文字:25
+ HOME = "C:\ Users \ khornsby" 

PS P:\> Set-Variable HOME "C:\Users\khornsby"
Set-Variable:変数HOMEは読み取り専用であるため上書きできません
定数。
1行目:char:13
+セット変数 

PS P:\> dir env:home*

名前値
---- -----
ホームパス\
ホームドライブP:
ホームシェア\\ fileserv \ khornsby $


PS P:\>

2
投稿をどのようにフォーマットしましたか?入力した内容が強調表示される方法が気に入っています。
ジェイバズージ

3
<kbd>タグを使用しました。
kzh

回答:


27

変数はデフォルトでは読み取り専用ですが、-ForceRemove-Variableに切り替えることで削除できます。セッション全体で変更を永続的にするには.bashrc、Powershellを除いて(Linuxのbashの場合)とよく似たプロファイルファイルを作成します。

C:\Users\YOUR_USERNAME_HERE\documentsユーザーアカウントのDocumentsディレクトリ(通常は)に、WindowsPowerShellフォルダー(名前がまったく同じ)が存在しない場合は作成します。フォルダー内に、profile.ps1というテキストファイルを作成します( profile.ps1.txtでないことを確認してください)。

ファイル内に、Powershellを開いたときに実行するものをすべて配置します。

例:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"

結果:

代替テキスト


1
また、起動時にスクリプトをショートカットから実行して、以下を指定することもできます。 %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
これを試してみましたが、$ HOMEの値は正常に変更されます。しかし、「cd〜」は頑固に元の場所に切り替わります。
ウィーブル

2
@ Weeble、〜ショートカットをオーバーライドするための私の答えをご覧ください。
ulty4life 14年

9

~ショートカットに関する@Weebleの懸念に対処するには:

$HOMEDRIVE = "C:\"
$HOMEPATH = "Users\" + $env:username

# Set and force overwrite of the $HOME variable
Set-Variable HOME "$HOMEDRIVE$HOMEPATH" -Force

# Set the "~" shortcut value for the FileSystem provider
(get-psprovider 'FileSystem').Home = $HOMEDRIVE + $HOMEPATH

〜と$ HOMEの違いについては、こちらをご覧ください


1
cd $HOME最後に追加する価値があるので、シェルはその場所で開始され、使用するためにすべて設定されます:)
Eliran Malka

5

さらに簡単...高度なシステム設定を開く...

 C:\> systempropertiesadvanced

HOMEという名前の新しいシステム変数をプロファイルへのパスで追加します

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

エクスプローラーを再起動するか、ログアウトして再度ログインします...

PS C:\> $Env:home 
--- 

3
これは、質問が求めることを行いません。これにより、Powershell変数$ HOMEではなく、環境変数$ env:HOMEが設定されます。Powershell変数$ HOMEは、Powershellプロセスの開始時に環境変数$ env:HOMEDRIVEおよび$ env:HOMEPATHから派生しているようです。「cd〜」の動作を決定するのは$ HOMEです。
ウィーブル

2
申し訳ありませんが、最後の声明は真実ではありません。$ HOMEと "cd〜"の動作は、Powershellプロセスの起動時に、HOMEDRIVEおよびHOMEPATH環境変数の値と一致するようです。その後、これらの変数/環境変数を変更しても、「cd〜」で選択されたディレクトリには影響がないようです。
ウィーブル

私にとってはうまくいく....あなたが違うやり方をしているか分からない。
エディB

3

Windows内から変更するには、次を試してください。

  • PowerShellをタスクバーに固定します。

  • タスクバーのPowerShellアイコンを右クリックします。

  • 「Windows PowerShell」を右クリックして、「プロパティ」を選択します。

  • [プロパティ]ウィンドウ内で、[ショートカット]タブに移動し、[開始:]フィールドを目的の開始ディレクトリに変更します。(例:)。C:\Users\username\Desktop

  • 「OK」をクリックします。

  • タスクバーからPowerShellを起動します。

    タスクバー

    プロパティウィンドウ


「管理者として実行」を選択するときに動作しない
デビを

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