1

私のユーザー アカウント ファイルは独自のディスク (つまり、D:\foo) に移動しました。Windows エクスプローラーの [プロパティ]/[場所] 機能を使用して、デスクトップなどの特別なディレクトリを移動するという推奨される方法を使用しました。現在、powershell では、~/Desktop、~/Document などを見つけることができません。

チルダの再マッピングはうまくいくと思いましたが、それを行う方法を見つけることができませんでした。それがベストプラクティスであるかどうかはわかりません。

Powershell 達人、助けてくれませんか?

4

4 に答える 4

1

答えてくれてありがとう。後から考えると、この質問が「cd ~/Desktop」や「cp ~/Desktop/foo.txt」などの操作を行っているときなどのインタラクティブな設定のコンテキストにあることを意味していたかどうかは明確ではありませんでした。Powershell ウィンドウで。環境変数に関して受け取った回答 (ありがとう!) は、Powershell スクリプト (つまり foo.ps1) に適していたと思います。

いずれにせよ、この投稿で答えを見つけ、起動スクリプトに 2 つのライナーを追加しました。"cd ~/Desktop" は D:\foo\Desktop に移動します

http://www.vistax64.com/powershell/31790-override-filesystem-providers- Treatment-tilde.html

$provider = get-psprovider filesystem
$provider.Home = 'D:\foo'
于 2013-04-01T02:32:26.363 に答える
1

既定では、PowerShell は '~' をユーザー プロファイル フォルダーに解決するように構成されています。通常、これは「c:\users\」です。

ただし、ホーム/ユーザー プロファイル フォルダーが「c:\users...」以外の場所に移動されたマシンまたは環境で実行している場合、PowerShell はユーザー プロファイル フォルダーを見つけられない可能性があります。 .

ユーザー プロファイル フォルダーを別の場所に移動すると、多くのアプリが破損する可能性が高く、実際、Win8.1 では、PowerShell が正しく動作しないだけでなく、多数のアプリのクラッシュやシステムの不安定性などの原因であることが確認されています。 .

Ed Bott は最近、この問題に関する Microsoft からの新たに更新された公式ガイダンスを作成しました。

Windows ユーザー プロファイル フォルダーを別のドライブに移動しないでください。

Fez & HLO からの回答を使用して、PowerShell がホーム フォルダーを探す場所を指定できます。

(get-psprovider filesystem).Home = "C:\Users\<user>"

上記の行を入力し続ける必要がないように、上記のコマンドをデフォルトの PowerShell ユーザー プロファイルに追加する必要がある場合があります。

C:\Users\<user>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

ドキュメントや写真などの場所を移動したい場合は、新しいフォルダーの場所を適切なライブラリに追加する方がおそらく理にかなっています。その通り。ユーザー プロファイルのルート (Git、SSH など) に書き込む必要があるものは何でも実行できますが、doc/photo/music ファイルを書き込む必要があるものは別の場所に透過的にリダイレクトできます。

HTH。

于 2013-11-14T17:54:31.647 に答える
0

Powershell は~ユーザーのホーム ディレクトリを受け入れますが、覚えていない理由により、それを使用することはお勧めできません。

ここの他の回答にリンクされている環境変数は、PowerShell から利用できますが、%VARNAME%構文を使用しないでください。これはバッチです。Env:PSProviderを使用して、ユーザー ホーム ディレクトリが$Env:USERPROFILEPowerShell にあるようにします。で、現在定義されているすべての環境変数を表示できますget-childitem env:

于 2013-03-29T02:22:03.310 に答える