以下脚本列出目录中的所有文件,并在控制台中返回其名称和路径。
结果如下:
C:\Projects\company\trunk\www\client\project\customer\start.js
我需要删除初始部分并获得结果,如
project\customer\start.js
我无法在Replace中设置正确的正则表达式。 你能指出我正确的方向吗?
Get-ChildItem -Path C:\Projects\company\trunk\www\client\project -Filter *.js -Recurse -File |
Sort-Object Length -Descending |
ForEach-Object {
$_ = $_ -replace '\\C:\Projects\company\trunk\www\client\project', ''
"'" + $_.FullName + "',"
}
答案 0 :(得分:4)
$_
是一个FileInfo
对象,而不是字符串,路径不以反斜杠开头,如果要使用{{{},则必须转义搜索字符串中的反斜杠1}} operator。
试试这个:
-replace
答案 1 :(得分:0)
由于管道上有一个FileInfo对象,你可以使用$ _。名称 - 不需要正则表达式