回答:
PowerShellプロファイル(%userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
)でプロンプト関数をカスタマイズする必要があります。以前に変更したことがない場合は、空白であるか、存在しないことさえあります。
プロファイルを開きます(たとえば、前述のファイルを開くか、PowerShellで実行しますNotepad $profile
)。
次をプロファイルに追加します。
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
プロファイルを保存する
PowerShellを再起動します
オプション。スクリプトの実行が許可されていないというメッセージが表示された場合、PowerShellで次の行をコピーして貼り付ける必要があります。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
そして再起動します。
Windows PowerShellの実行ポリシーにより、Windows PowerShellが構成ファイルを読み込んでスクリプトを実行する条件を決定できます。
ローカルコンピューター、現在のユーザー、または特定のセッションの実行ポリシーを設定できます。グループポリシー設定を使用して、コンピューターとユーザーの実行ポリシーを設定することもできます。
GetCurrentDirectory
。PowerShellは必ずしもファイルシステムを意味するわけではないことに注意してください。レジストリスナップインを使用するcd hkcu:
と、使用でき、プロンプトは完全にオフになります。
$PWD
を呼び出す代わりにを使用することもできますGet-Location
。例:function prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
プロファイルファイルで定義する必要はありません。グローバルセッションスコープ内になければなりません。デフォルトではと同等と思われるfunction prompt {"PS " + (Get-Location) + ">"}
一方で、function prompt {""}
同じ提供しますfunction prompt {"PS>"}
。function prompt {" `b"}
空のプロンプトを取得するために使用します(少なくとも視覚的に...)。
追加のメモとして、最初に$ profileを作成するまで@Synetechのコマンドを実行できませんでした。
入力$profile
してEnter キーを押します。これにより、PowerShellが存在しないプロファイルパス(存在しない場合でも)が表示されます。私の道は@Synetechが上に投稿したものとは異なっていました。
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
WindowsPowerShellフォルダーとMicrosoft.PowerShell_profile.ps1ファイルの両方を作成する必要がありました。
注意:
posh-git(GitHubデスクトップを使用するときにインストールされます)を使用している場合、@ Synetechのスクリプトはposh-gitプロンプトをオーバーライドします。posh-gitの追加プロンプトスクリプトはこちら。
%userprofile%
展開C:\Users\[username]
$Env:userprofile
と同等ですecho %userprofile%
プロンプトを変更して、フルパスなしで最後に大なり記号なしで現在のフォルダーを表示します。
1つの方法は次のとおりです。
Function Prompt { "$( ( get-item $pwd ).Name )>" }
または:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
または:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
。
@Synetechの答えとPowerShellのプロファイルにある情報を組み合わせると、これは非常に簡単だとわかりました。私はPSの初心者だからです。私の手順(vscodeの場合):
貼り付ける
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(PSプロンプトで、SuperUse回答から)
リロードvscode
そのため、ほとんどの場合@Synetechの回答(賛成)で簡単に始めることができます-特にステップ2でこれが非常に簡単になります。
[System.IO.Directory]::GetCurrentDirectory()
は、Powershellの現在の場所ではなく、プロセスの作業ディレクトリを表します。これらは常に同じではありません。に置き換えますGet-Location