ls "d:\" "yasuo500" -recurse -directory
此命令在 d:\media\documents 中找到文件夹“yasuo500”,我想使用“cd”进入该目录,但是该怎么做呢?我试过这个:
$path1 = ls "d:\" "yasuo500" -recurse -directory
cd $path1
但它不起作用,它说cd : cannot find path 'c:\yasuo500' because it does not exist.
我究竟做错了什么?
*请记住我可以这样做
cd "d:\media\documents\yasuo500"
但是...它效率不高,如果目录很长,我就要输入太多的内容。
答案1
你需要:cd $path1.FullName
PowerShell
对对象进行操作,了解它们如何协同工作非常重要。
cd
是 的别名Set-Location
。
get-help Set-Location
表示它期望路径的字符串:
设置位置[[-路径] <字符串>][-PassThru] [-UseTransaction] []
这意味着当您传递一个对象时,它会将该对象转换为字符串。
$path1
是DirectoryInfo
,如果您调用 ,$path1.ToString()
您将只获得路径的 yasuo500 部分。它相当于cd yasuo500
,错误表明您尝试从 C:\ 的根目录执行此操作。
使用FullName
DirectoryInfo 的属性可以提供完整的路径字符串。