string - 批处理或 PowerShell : How to get the last word from string?

标签 string batch-file powershell powershell-2.0 batch-processing

这是我的场景:

我有一个包含很多行的文本文件。每行是一个文件夹的路径。

示例: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/

相关文章:

powershell - 如何确保一次只运行一个脚本实例?

c# - 获取特定值作为字符串 c#

C如何读取以逗号分隔的输入

c - 字符串排序并删除重复项

string - Xcode5 和 iOS7 : trailing whitespaces in strings in Localizable. 字符串不再起作用

java - 通过命令提示符运行(可能是路径错误?)

batch-file - 在批处理文件/cmd文件中自动输入密码

ruby - 从目录树递归复制文件类型

mysql - Windows环境下如何将MySQL查询结果输出为csv格式?

c# - 如何检索程序集的限定类型名称?