批处理命令拆分字符串并查找唯一

时间:2016-02-01 18:22:31

标签: batch-file batch-processing

我在一个文件夹中有大约600个不同商店的文件。他们的名字就像 StoreNum_MMDD.txt / TXT / TXT / TXT / TXT。我想找到所有独特的StoreNum。

请注意扩展名,该命令应搜索所有可能的组合。

例如。 如果有4个文件,比如

 123_0221.txt 
 32145_1220.txt 
 123_1020.TXT 
 455_0412.txT

然后我的输出应该是

123  
32145  
455

这是我的代码:

 FOR /F "tokens=1 delims=_ " %%i in (%FILE%) do ( echo %%i ) 

但这会产生所有

123
32145
123
455

重复“123”

1 个答案:

答案 0 :(得分:1)

@echo off
setlocal

rem Process all files and create *unique* array elements per store
for /F "delims=_" %%i in ('dir /B *.txt') do set "store[%%i]=1"

rem Show *subscripts* of elements in "store" array (not the value, that is always 1)
for /F "tokens=2 delims=[]" %%i in ('set store[') do echo %%i

有关批处理文件中阵列管理的更多详细信息,请参阅:Arrays, linked lists and other data structures in cmd.exe (batch) script

如果您对for命令有疑问,请查看建议的链接。

如果要创建输出文件,请在括号中将整个最后for命令括起来并使用(redirection to an) > output文件。