Batch file 使用批处理脚本拆分字符串
你可以说这是一个重复的问题,但事实是我找不到解决办法。如果你不想接受采访,你可以重新指导 我在变量中有一个文件名为A123_101234_3。 我想根据下划线作为分隔符拆分字符串,然后使用字符串的最后一部分“3”进行进一步比较(它实际上是月数)Batch file 使用批处理脚本拆分字符串,batch-file,split,Batch File,Split,你可以说这是一个重复的问题,但事实是我找不到解决办法。如果你不想接受采访,你可以重新指导 我在变量中有一个文件名为A123_101234_3。 我想根据下划线作为分隔符拆分字符串,然后使用字符串的最后一部分“3”进行进一步比较(它实际上是月数) 感谢您的帮助知道它是第三个元素,并且元素以下划线分隔,您可以使用for/f标记器 for /f "tokens=3 delims=_" %%# in ("A123_101234_3.csv") do set month=%%~n# echo %month
感谢您的帮助知道它是第三个元素,并且元素以下划线分隔,您可以使用
for/f
标记器
for /f "tokens=3 delims=_" %%# in ("A123_101234_3.csv") do set month=%%~n#
echo %month%
设置“输入=A123_101234_3”
对于/f“tokens=3 delims=33;”%%a in(“%input%”)设置“output=%%a”
知道它是输入中的最后一个元素,但不知道有多少元素,您可以将下划线转换为空格,并在元素列表上迭代。这将覆盖保留最后一个元素的输出变量
设置“输入=A123_101234_3”
对于%%a in(“%input:\=”“%”)设置“output=%%~a”
如果数据包含空格或其他分隔符,则可以用反斜杠替换下划线,并将输入作为文件引用处理
设置“输入=A123_101234_3”
对于%%a in(“%input:\%”)设置“output=%%~nxa”
该解决方案运行良好。但是它给我的不是月号而是3.csv,因为文件名的扩展名是.csv。我添加了一个命令,若%month:~-5,1%==3进行比较,但这里的问题是,若月份号有两位数字。我如何解决它?我怎么能忽略它的最后4个字符,这样我就只剩下月数供比较了?感谢您的帮助。@Sharma:在您的问题中,您说:“我在变量中有一个文件名为A123_101234_3”。如果不是这样,但文件名的扩展名是.csv:“A123_101234_3.csv”,那么您应该在原始问题中修改该信息!在评论中发布附加数据是一种非常糟糕的做法,因为你强迫读者阅读所有答案中的所有评论,以便理解你的问题<代码>:(