这是我的场景:
我有一个包含很多行的文本文件。每行是一个文件夹的路径。
示例:000.txt
C:\Program Files (x86)\Microsoft Office\Office15
C:\Program Files (x86)\Common Files\Adobe\Acrobat
C:\Program Files (x86)\Common Files\Blizzard Entertainment
我需要找到一种方法来获取每一行的最后一个子文件夹的名称并使用它来创建文件夹链接:
d:\>mklink /j office15 "C:\Program Files (x86)\Microsoft Office\Office15"
d:\>mklink /j acrobat "C:\Program Files (x86)\Common Files\Adobe\Acrobat"
d:\>mklink /j "Blizzard Entertainment" "C:\Program Files (x86)\Common Files\Blizzard Entertainment"
我试过这个:
$a="C:\Program Files (x86)\Microsoft Office\Office15"
$a.Split()[-1]
结果:
Office\Office15
我也试过:
$a.Split("`t",[System.StringSplitOptions]::RemoveEmptyEntries)[-1]
结果是:
5
如何获取每行的最后一个单词或最后一个单词的最后一个
\
通过使用 Batch 还是 PowerShell?
最佳答案
我假设这些文件夹都已经存在,如果存在,则有一种完全不同的考虑方式:
Get-Content "000.txt" | Get-Item | foreach-object {
cmd /c mklink /J $_.Name $_.FullName
}
因此,对于每个文件夹名称,您都会获得与该文件夹关联的 DirectoryInfo 对象。然后就可以直接从
Name
中提取路径的最后一部分属性(property)。这还有一个优点,如果在您尝试链接到目标文件夹之前不存在任何目标文件夹,您将收到错误消息。
关于string - 批处理或 PowerShell : How to get the last word from string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029944/