2016-04-25 215 views
2

我試圖讓兒童來到「變量」驅動器或「env」驅動器下,並將位置設置爲「別名」驅動器。正如在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」的文件夾並在其中彈出一個文本文件,那麼上面的代碼將返回該文件。

這是由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:

支持在特定情況下,你在別名提供商和「ENV」不是別名(至少不是默認設置)。 Get-ChildItem ls雖然會返回一些東西。


因此,將冒號添加到任何驅動器應允許您引用它。

0

不斷看到

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

也不管我寫誰的名字有它每次出錯。

我刪除它,腳本運行良好沒有它。

Windows Server 2012r2

相關問題