我正在尝试使用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
答案 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"