2015-06-25 128 views

回答

2

的参数被视为char的数组,而不是字面字符串。匹配参数“D:\ abc”中任何字符的字符串开始处的所有连续字符都将被删除。

您可以使用-replace操盘手,这需要一个正则表达式作为其右手的说法:

PS C:\> "D:\abc\abcName" -replace "^D:\\abc\\" 
abcName 

如果您不确定逃脱(如\)的字符,让[regex] class do it for you:

PS C:\> "D:\abc\abcName" -replace "^$([regex]::Escape("D:\abc\"))" 
abcName 
2

Mathias R. Jessen指出。

看起来像要从路径中获取文件名。除了使用TrimStart考虑使用静态GetFileNameWithoutExtension方法:

[system.io.path]::GetFileNameWithoutExtension("D:\abc\abcName.bat") 

结果:

abcName

或者,如果你想扩展名的完整文件名:

[system.io.path]::GetFileName("D:\abc\abcName.bat") 

结果:

abcName.bat

相关问题