2016-04-25 27 views
2

"可変"ドライブまたは "env"ドライブに属する子を取得しようとしていて、 "Alias"ドライブに設定されている場所があります。 HeyIamScriptingGuyのチュートリアルで述べたように:http://dlbmodigital.microsoft.com/webcasts/wmv/23978_Dnl_L.wmv。 18:35にビデオをシーク、あなたは彼がそうする可能性が表示されます、しかし、私にとってそれは常に次のエラーを示しています。だから、最終的に私は、これらのドライブは、実際に存在するかどうかをチェックし、それことは不可能であるGet-ChildItem:パス 'env'が存在しないため見つかりません

PS Alias:\> Get-ChildItem env 
Get-ChildItem : Cannot find path 'env' because it does not exist. 
At line:1 char:1 
+ Get-ChildItem env 
+ ~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (env:String) [Get-ChildItem], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 

を存在しません。

PS Alias:\> Get-PSProvider 

Name     Capabilities          Drives 
----     ------------          ------ 
Registry    ShouldProcess, Transactions      {HKLM, HKCU} 
Alias    ShouldProcess          {Alias} 
Environment   ShouldProcess          {Env} 
FileSystem   Filter, ShouldProcess, Credentials    {C, D, E} 
Function    ShouldProcess          {Function} 
Variable    ShouldProcess          {Variable} 
WSMan    Credentials          {WSMan} 
Certificate   ShouldProcess          {Cert} 

ご覧のとおり、これらのドライブは使用可能です。 Alias Driveに場所を設定しているときに、どのドライブからでもChildItemを取得することはできません。

何か不足していますか?

+1

_Am何も見つかりませんでしたか?_コロン。 'Get-ChildItem env:'。 'Get-ChildItem c'も失敗します。あなたは本能的にC:を追加します。現在、プロバイダの作業ディレクトリ内の項目を見つけるように指示しています。私は答えますが、私はこれが削除されると思う。 – Matt

+1

コメントを再読み込みしてください。私はそれがなぜ動かないのかを付け加えました。 PowerShellは、現在のプロバイダの作業ディレクトリ内のオブジェクトを参照しているとみなします。その違いをどうやって教えてくれるでしょうか? – Matt

答えて

4

Am I missing anything ?

はい。コロン

これがないと、PowerShellは、現在のプロバイダの作業ディレクトリ内のオブジェクトを参照しているとみなします。ファイルシステムプロバイダを想定する: "env"という名前のフォルダを作成し、そこにテキストファイルをポップすると、上のコードでそのファイルが返されます。

これは、エイリアスプロバイダと「ENV」である特定のケースでdocumentation from TechNet

To view the contents of a provider drive, use the Get-Item or Get-ChildItem cmdlets. Type the drive name followed by a colon (:). For example, to view the contents of the Alias: drive, type:

によってサポートされているエイリアス(少なくともデフォルトではない)ではありません。 Get-ChildItem lsは何かを返すでしょう。


したがって、いずれかのドライブにコロンを追加すると、そのように参照できるようになります。

0

かかわらず、私はそこに置くことが毎回エラーが発生したどのような名前の

gc : Cannot find path 'Env:\XXCOMPUTERNAMEXX' because it does not exist.

とを見続けました。

私はそれを削除し、スクリプトは正常に実行されます。

Windowsサーバー2012r2