使用批处理文件将文件名和文件中的特定字符串传递给for循环

时间:2014-03-01 20:18:12

标签: batch-file

这是我的另一个挑战。当我将文件名传递给for循环时,我想从文件名中获取一个特定的单词,并且需要将其作为参数传递。

例如: 当文件夹中有5个文件时说

Encrypted_abc_1.xml Encrypted_xyz_2.xml Encrypted_hij_3.xml Encrypted_klm_4.xml Encrypted_nop_5.xml

我想将文件名Encrypted_abc_1.xml和abc传递给for循环。我在单独的循环中获得了答案但是我如何合并为一个单独的循环

首先for for循环将获取单词

for /f "tokens=2 delims=_." %%a in (Encrypted_*.xml /b) do (

Echo %%a

另一个for循环将获得完整的文件名

for /R "%Path%" %%f in (Encrypted_*.xml) do (

Echo %%f

我想在单个for循环中合并。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

你走了:

@echo off
setlocal

for /f "tokens=*" %%a in ('dir /b %1\Encrypted*.xml') do (
  echo %%a & for /f "tokens=2 delims=_" %%b in ("%%a") do (
    echo %%b
  )
)

确保传递脚本的路径。 这是我得到的输出

C:\temp>testfilenameparse.cmd c:\path
Encrypted_abc_1.xml
abc
Encrypted_samp_3.xml
samp
Encrypted_xyz_2.xml
xyz