首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cd -path中正确调用嵌套对象变量?

如何在cd -path中正确调用嵌套对象变量?
EN

Stack Overflow用户
提问于 2019-05-13 08:48:18
回答 2查看 35关注 0票数 0

我在win10 10-64位下使用powershell。我在-path参数中的"Set-location“函数下输入了一个路径。我的path变量是来自System.Array的一个属性,它是"$list.name“。在循环中,我递归地调用".\$list.name$i“作为路径,但失败了。我想正确地调用嵌套变量。

  1. 要显示变量的代码
代码语言:javascript
复制
PS C:\Users\admin\Documents\Rainmeter\Skins> $list
label name   link                                                        sort
----- ----   ----                                                        ----
    1 chrome C:\Program Files (x86)\Google\Chrome\Application\chrome.exe    1
    1 matlab C:\Program Files\MATLAB\R2019a\bin\matlab.exe                  3

PS C:\Users\admin\Documents\Rainmeter\Skins> $i=0
  1. 显示错误的代码
代码语言:javascript
复制
PS C:\Users\admin\Documents\Rainmeter\Skins> Set-Location -Path .\$list.name[$i]
Set-Location : could not find path “.\ .name[0]”,the path is not existed.
+ Set-Location -Path .\$list.name[0]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (.\ .name[0]:String) [Set-Location], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
  1. 我试着添加双引号,下面是failed.As,
代码语言:javascript
复制
Set-Location -Path ".\$list.name[$i]"
  1. 我必须命名另一个变量来替代嵌套变量。它能工作,但不漂亮。如下所示,
代码语言:javascript
复制
$file = $list.name[$i]
Set-Location -Path $file

我想正确地调用循环下的-path参数中的嵌套变量,并知道错误的原因。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-13 08:51:56

尝试将其包装在)中。在替换字符串之前,PowerShell将在括号内执行。例如:

代码语言:javascript
复制
Set-Location -Path ".\$($list.name[$i])"
票数 0
EN

Stack Overflow用户

发布于 2019-05-13 09:22:55

不能将位置设置为文件,请使用Split-Path获取链接的父级,而不是名称。

代码语言:javascript
复制
Set-Location -Path (Split-Path -Path $list.link[$i] -Parent)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56108740

复制
相关文章

相似问题

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