如何在文件夹名称中获取特定名称

时间:2018-08-16 14:04:00

标签: batch-file

一个名为CD_25467,JBMA_33455,CCD_2133等的目录,我想将字符和数字存储在两个不同的变量中。例如,

CD_25467

   @echo off
   set folder=D:\karthick\CD_25467
   set j=[(A-Z)+]
   set a=[(0-9)+]
   echo %j%
   echo %a%

输出将会出现,

CD
25467

如何为上述示例编写正则表达式编码?

1 个答案:

答案 0 :(得分:1)

在批处理文件中使用:

@echo off
for %%I in ("D:\karthick\CD_25467") do for /F "tokens=1,2 delims=_" %%A in ("%%~nI") do set "j=%%A" & set "a=%%B"
echo %j%
echo %a%

打开命令提示符窗口,然后运行for /?获取命令 FOR 的帮助,解释%~nI表示引用文件或文件夹名称的含义,即最后一个反斜杠和如果有这样的字符串,则最后一个点。以反斜杠结尾的文件夹路径将导致仅使用""运行内部 FOR ,导致ja仍未定义或保持其当前字符串值

该帮助还说明了如何使用选项/F来分割从文本文件或单个字符串读取的一个或多个行(如此处所进行的操作)或由在命令行中使用{{ 1}}。