【发布时间】:2015-02-11 14:34:33
【问题描述】:
我经常想做这样的事情:
$foo=ls foo.txt|select FullName
$bar=$foo.split("\\"); # or replace or some such
但是如果我现在看一下 bar 中的字符串,它们看起来像这样:
@{FullName=C:\path\to\foo.txt}
由于我知道装饰的长度,我可以手动获取子字符串。但这似乎很棘手 - 有没有办法将路径部分作为字符串获取?
编辑:根据一些问题说明另一个类似的问题,如果我这样做的话:
$foo -replace("\\","/")
我明白了:
@{FullName=C:/src/tss/THSS-Deployment-Config/foo.txt}
我正在对这些文件名进行大量操作,以便在不同的 CM 存储库之间进行迁移。我在想'如果我能把整个路径作为一个字符串'......
这是我第一次认真接触 PS。所以也许我的心态是错误的。
【问题讨论】:
-
您将对象视为字符串,这在您的情况下不起作用。这就是
select -ExpandProperty FullName和(gci foo.txt).fullname的意义所在。您要操作的是具有全名属性的对象,这就是您看到哈希表表示法的原因。
标签: string powershell filenames