我有一个文本文件,其中包含一组UNIXPATH格式的字符串。我需要提取每个由'/'分隔的最后一个字符串。从文件中提取带分隔符'/'的最后一个字符串
/Public/Home/Call/Reports/Weekly Template/C555 Weekly Report - Monday
/Public/Home/Call/Reports/Weekly Template/C567 Weekly Report - Monday
/Public/Home/Call/Reports/Weekly Template/C555 Weekly Report - Tuesday
/Public/Home/Claim Repo/Reports/Weekly Set/@Weekly Report - $100 for Monday
/Public/Home/Claim Report/Reports/Weekly Not Set/ Weekly Report - Monday
我需要在Windows机器上运行这些,因此需要PowerShell或批处理。 我需要帮助的脚本,可以让空格和特殊字符也工作了,并且可以读取.TXT文件和输出以下格式的完整字符串:
/Public/Home/Call/Reports/Weekly Template C555 Weekly Report - Monday
/Public/Home/Call/Reports/Weekly Template C567 Weekly Report - Monday
/Public/Home/Call/Reports/Weekly Template C555 Weekly Report - Tuesday
/Public/Home/Claim Repo/Reports/Weekly Set @Weekly Report - $100 for Monday
/Public/Home/Claim Report/Reports/Weekly Not Set Weekly Report - Monday
有一个解决方案,我在另一个答案中发现:
http://stackoverflow.com/questions/20004597/extracting-string-after-last-instance-of-delimiter-in-a-batch-file
它的代码被给定为:
for %%a in (%param:\= %) do set lastDir=%%a
:nextParam
set "param=%~1"
if not defined param goto endParams
for %%a in (%param:\= %) do set lastDir=%%a
echo Last dir: %lastDir%
shift
goto nextParam
:endParams
或者,在一个简单的方法(不带空格限制):
:nextParam
if "%~1" equ "" goto endParams
echo Last dir: %~N1
shift
goto nextParam
:endParams
但是,我希望迎合字符串中的空格和特殊字符,上面没有这样做。
'-match'返回布尔值True或False - 不是字符串。 – 2014-09-23 04:24:18
@KeithHill:代码没有经过测试,但你可以避免在这里使用匹配运算符 – 2014-09-23 04:31:28
@walidtoumi:我怎样得到字符串的第一部分呢?我可以将它解压缩到单独的文件中吗? – gagneet 2014-09-23 08:18:08