首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell获取-项目/获取-儿童

Powershell获取-项目/获取-儿童
EN

Stack Overflow用户
提问于 2020-11-16 23:51:42
回答 2查看 389关注 0票数 2

对于Powershell和脚本/编程非常陌生,我遇到了一个非常基本的问题。

如果我有这样的结构:

代码语言:javascript
运行
复制
Set-Location $PSScriptRoot

然后执行以下操作,我将得到Logfiles文件夹中的文件夹:

代码语言:javascript
运行
复制
 $folders = Get-ChildItem -Directory -Path .\Logfiles -Recurse

如果然后执行以下操作,我可以在"Logfiles“中看到第一个子文件夹

代码语言:javascript
运行
复制
$folders[0]

但现在,如果我这样做,它似乎使用“脚本”文件夹而不是"Logfiles“作为根文件夹:

代码语言:javascript
运行
复制
Get-ChildItem $folders[0]

代码语言:javascript
运行
复制
Get-ChildItem .\Logfiles\$folders[0]

.(给出一个空结果)

是否有人知道powershell命令中目录是如何工作的?我猜我在处理命令时犯了一个非常基本的错误!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-17 00:01:45

PowerShell接受$folders[0] (解析为[DirectoryInfo]对象),并尝试将其转换为可以绑定到Get-ChildItem-Path参数的字符串。

但是,将目录对象转换为字符串只会导致它的名称,有关其位置的信息将在进程中丢失。

相反,您需要这样做:

代码语言:javascript
运行
复制
$folders[0] |Get-ChildItem

..。这将导致PowerShell正确绑定目录对象的完整路径,或者可以将完整路径作为参数传递给-Path

代码语言:javascript
运行
复制
Get-ChildItem $folders[0].FullName
票数 0
EN

Stack Overflow用户

发布于 2020-11-16 23:59:07

试一试

代码语言:javascript
运行
复制
Get-ChildItem ".\Logfiles\$($folders[0].Name)"

代码语言:javascript
运行
复制
Get-ChildItem $folders[0].FullName

或者我最喜欢的

代码语言:javascript
运行
复制
$folders[0] | Get-ChildItem
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64867400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档