ls "d:\" "yasuo500" -recurse -directory
这个命令在d:\ media \ documents中find文件夹'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"
但是…这不是很有效率,如果目录很长,我会input太多的内容。
您需要: cd $path1.FullName
PowerShell对对象进行操作,了解这些对象如何协同工作非常重要。
cd是Set-Location的别名。
get-help Set-Location表示它期望一个string的path:
Set-Location [[-Path] <string>] [-PassThru] [-UseTransaction] []
这意味着当你传递一个对象的时候,它会把对象转换成一个string。
$path1是一个DirectoryInfo ,如果你调用$path1.ToString()你将只获得path的yasuo500部分。 这是cd yasuo500的等价物,错误表明你试图从你的C:\的根目录下做这件事。
使用DirectoryInfo的FullName属性给出一个完整的pathstring。