找不到路径?

时间:2013-02-26 18:56:08

标签: powershell powershell-v3.0

我正在尝试使用Powershell 3.0在multilpe服务器上运行以下版本,但出于某种原因我回到路径不存在...即使它确实存在?

有什么想法吗?

CODE:

clear
$computer = Get-Content -path c:\temp\servers.txt

foreach ($computer1 in $computer){

Write-Host $computer1
Get-Content -Path '\\$computer1\C$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log' -Tail 10

}

ERROR:

  

SV191267获取内容:找不到路径'\ $ computer1 \ C $ \ Program   文件\ BMC Software \ BladeLogic \ RSCD \ rscd.log'因为它没有   存在。在   C:\ Users \用户gaachm5 \应用程序数据\本地\ TEMP \ e4651274-DCAB-4a87-95a6-0f11437a7187.ps1:7   焦炭:1   + Get-Content -Path'\ $ computer1 \ C $ \ Program Files \ BMC Software \ BladeLogic \ RSCD \ rs ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:ObjectNotFound:(\ $ computer1 \ C $ ... c \ RSCD \ rscd.log:String)[Get-Content],   ItemNotFoundException       + FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

     

SV193936 Get-Content:找不到路径'\ $ computer1 \ C $ \ Program   文件\ BMC Software \ BladeLogic \ RSCD \ rscd.log'因为它没有   存在。在   C:\ Users \用户gaachm5 \应用程序数据\本地\ TEMP \ e4651274-DCAB-4a87-95a6-0f11437a7187.ps1:7   焦炭:1   + Get-Content -Path'\ $ computer1 \ C $ \ Program Files \ BMC Software \ BladeLogic \ RSCD \ rs ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:ObjectNotFound:(\ $ computer1 \ C $ ... c \ RSCD \ rscd.log:String)[Get-Content],   ItemNotFoundException       + FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

2 个答案:

答案 0 :(得分:4)

尝试:

"\\$computer1\C`$\Program Files\BMC Software\BladeLogic\RSCD\rscd.log" -Tail 10

在单引号'中,变量未展开,但被视为$computer1的字面值,$的{​​{1}}必须使用反引号`

答案 1 :(得分:3)

无法找到的路径前面只有一个\,UNC共享必须以两个开头。我可以从你的代码中看到它看起来像是在为这两个代码加前缀,但它看起来并不像是在继续进行。

我会使用双引号而不是单引号,如果你这样做,那么你也不需要转义$字符。

假设本地计算机上的C:\ temp文件夹中存在名为file.txt的文件。

这失败了:

$computer1 = "localhost"
Test-Path '\\$computer1\c$\temp\file.txt'

这有效:

$computer1 = "localhost"
Test-Path "\\$computer1\c$\Temp\file.txt"