DIR 但 select 文件名的特定部分
DIR but select specific parts of file names
我多年来一直习惯使用这个非常简单方便的 .BAT
文件来创建一个简单的 TXT
目录中所有文件的文件:
dir *.* > LIST.TXT
但结果包含很多我不需要的信息
现在我在一个目录下有很多文件是这样的:
file 01 [shYddYJQIGfffY].xyz
second file 00008 [shYddYJQIfGf11dfzrffY].exe
filex [shGffY].sys
file that i don't need.txt
many other files that i don't need.bat
1/ 我可以将哪个命令行与 DIR(或其他任何命令)一起使用,以便在最终的 LIST.txt 文件中仅包含这些信息?只有 [
和 ]
之间的值
预期结果:
shYddYJQIGfffY
shYddYJQIfGf11dfzrffY
shGffY
2/ 如何编辑 .BAT
文件以在每个结果之前添加字符串 MYRESULT
,例如:
MYRESULT shYddYJQIGfffY
MYRESULT shYddYJQIfGf11dfzrffY
MYRESULT shGffY
使用 for
循环(参见 for /?
):
for /f "tokens=2 delims=[]" %%a in ('dir /b *[*].*') do echo MYRESULT %%a
这个for /f
循环每行取dir /b *[*].*
的输出(过滤相关文件,b是格式),并将其分成三部分,先标记第一个[
之前的部分,标记2[
和]
之间的部分。之后是第三部分。您只需要第二个令牌。然后将字符串与提取的子字符串一起回显,完成。
我多年来一直习惯使用这个非常简单方便的 .BAT
文件来创建一个简单的 TXT
目录中所有文件的文件:
dir *.* > LIST.TXT
但结果包含很多我不需要的信息
现在我在一个目录下有很多文件是这样的:
file 01 [shYddYJQIGfffY].xyz
second file 00008 [shYddYJQIfGf11dfzrffY].exe
filex [shGffY].sys
file that i don't need.txt
many other files that i don't need.bat
1/ 我可以将哪个命令行与 DIR(或其他任何命令)一起使用,以便在最终的 LIST.txt 文件中仅包含这些信息?只有 [
和 ]
预期结果:
shYddYJQIGfffY
shYddYJQIfGf11dfzrffY
shGffY
2/ 如何编辑 .BAT
文件以在每个结果之前添加字符串 MYRESULT
,例如:
MYRESULT shYddYJQIGfffY
MYRESULT shYddYJQIfGf11dfzrffY
MYRESULT shGffY
使用 for
循环(参见 for /?
):
for /f "tokens=2 delims=[]" %%a in ('dir /b *[*].*') do echo MYRESULT %%a
这个for /f
循环每行取dir /b *[*].*
的输出(过滤相关文件,b是格式),并将其分成三部分,先标记第一个[
之前的部分,标记2[
和]
之间的部分。之后是第三部分。您只需要第二个令牌。然后将字符串与提取的子字符串一起回显,完成。