【问题标题】:Batch how to read part of a folder name from directory批处理如何从目录中读取部分文件夹名称
【发布时间】:2016-05-24 09:51:28
【问题描述】:

早上,

我想从一个目录中读取所有文件夹名称,然后将该名称的一部分提取到一个文本文件中。

例如

文件夹 \users\music 包含以下文件夹: tes125559-blah345534 tes125558-blah235235

我想在 - 之前提取 3 个字符,因此将 125559 之后的 Tes125559-blah345534 im 放入文本文件中。

它总是 3 个字符,然后是一个需要抓取的 6 位数值

非常感谢任何帮助,到目前为止我只阅读了目录:

dir /b > 文件.txt

【问题讨论】:

    标签: file batch-file directory


    【解决方案1】:

    类似下面的东西应该可以解决问题:

    @echo off
            setlocal enabledelayedexpansion
            if exist file.txt del file.txt
            for /d %%a in (*) do (
                    set DIR=%%a
                    echo !DIR:~3,6!>>file.txt
            )
    

    for 循环遍历所有目录(在当前目录中)。对于每一个,它将目录名称存储在DIR 中,然后使用“子字符串”语法从第四个字符开始提取六个字符(3 是因为它从零开始计数——请参阅SET /? 了解更多信息信息)。

    在这个结构周围使用!(以及脚本顶部的enabledelayedexpansion)是因为引用环境变量的正常方式(使用%)不会重新评估@987654329的值@ 每次围绕for 循环(有关详细信息,请参阅cmd /?)。

    因为每个目录都附加到file.txt,所以我们在开始之前将其删除(如果存在的话)。

    【讨论】:

    • 完美!工作一种享受。这是我所追求的100%。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2011-01-02
    • 2015-10-28
    • 2017-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    相关资源
    最近更新 更多