【问题标题】:DIR but select specific parts of file namesDIR 但选择文件名的特定部分
【发布时间】:2021-12-29 17:09:52
【问题描述】:

多年来我一直习惯使用这个非常简单方便的.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

【问题讨论】:

    标签: parsing cmd directory command names


    【解决方案1】:

    使用for 循环(参见for /?):

    for /f "tokens=2 delims=[]" %%a in ('dir /b *[*].*') do echo MYRESULT %%a
    

    for /f 循环每行获取dir /b *[*].* 的输出(过滤相关文件,b是格式)并将其分成三个部分,首先标记第一个@之前的部分987654326@,token2 介于[] 之间的部分。以及之后的第三部分。您只需要第二个令牌。然后将字符串与提取的子字符串一起回显,完成。

    【讨论】:

    • 非常感谢!!超级令人印象深刻的答案。正是我想要的!我已经找到了一种使用 Excel 的方法,使用 [ then ] 转换列,然后使用 MYRESULT 连接,复制过去等您的答案要快 1000 倍。我真希望有一天我也能更好地理解那些非常强大的DOS强大的功能。我不知道为什么每次我尝试使用 DOS 在线搜索解决方案时,我几乎找不到它。最后,我没有在谷歌上浪费更多时间,而是用 excel 找到了其他解决方案。再次非常感谢!
    • 不要搜索 DOS。它是一个古老的基于命令行的操作系统 Windows 命令行是完全不同的一双靴子。请改用cmd 作为搜索条件。
    猜你喜欢
    • 2021-10-09
    • 2018-07-29
    • 2021-09-26
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多