Batch file 如何使用批处理文件从文件名中提取单词

Batch file 如何使用批处理文件从文件名中提取单词,batch-file,Batch File,我正在努力编写一个批处理文件,以便从文件名中获得一个特定的名称 一个文件夹中有几个xml文件,所有这些文件如下所示 Plaintext1.xml Plaintext2.xml Plaintext3.xml Encrypted_abcd_1_xml Encrypted_samp_2.xml Encrypted_xyz.xml .. 我只想获取以加密的*.xml开头的文件,在这些文件的列表中,我只想获取单词abcd、samp、xyz。i、 e在符号“”之前和符号“”之后 你能提供一些样品吗 我写了

我正在努力编写一个批处理文件,以便从文件名中获得一个特定的名称

一个文件夹中有几个xml文件,所有这些文件如下所示

Plaintext1.xml
Plaintext2.xml
Plaintext3.xml
Encrypted_abcd_1_xml
Encrypted_samp_2.xml
Encrypted_xyz.xml
..
我只想获取以加密的*.xml开头的文件,在这些文件的列表中,我只想获取单词abcd、samp、xyz。i、 e在符号“”之前和符号“”之后

你能提供一些样品吗

我写了这封信

@ECHO OFF
Z:
cd "C:\temp\"

for %%f in (Encrypted_*.xml) do (
Echo %%f
Echo x

)
:DONE

PAUSE:
这应该做到:

 @echo off
 setlocal

 cd /d "C:\temp"
 for /f "tokens=2 delims=_." %%a in ('dir Encrypted_*.xml /b ') do echo %%a

谢谢,它可以工作,但是我在列表的最后一个值中得到了一个值“x”。。一旦读取了所有文件,循环就应该停止,但即使在文件计数结束后,它似乎又进行了一次循环。您能否帮助如何在循环读取所有文件后退出循环?脚本中是否仍有如上所示的
echo x
?如果是,请将其拆下。除非您有一个名为Encrypted_x.xml的文件,否则您不应该得到一个x。没有一个文件名为Encrypted_x.xml。当for循环运行时,它会再运行一个循环,因为没有文件,所以它只回显变量x。例如:如果有5个文件,那么所有5个文件都显示正确的值,第6行显示x