【问题标题】:How do I append odd numbers to folder name using Windows batch?如何使用 Windows 批处理将奇数附加到文件夹名称?
【发布时间】:2013-04-24 05:40:46
【问题描述】:

我使用在此站点上找到的批处理脚本创建了一个包含 50 个州的目录,其中包含大约 3000 个县的子目录。

不幸的是,我将复制到目录中的文件是 FIPS 代码。 FIPS 代码只是一系列奇数,从 001 开始,适用于按州按字母顺序排列的县。例如,阿拉巴马州以 Autauga 县作为第一个字母县开始,FIPS 代码为 001,第二个县是 Baldwin,FIPS 代码为 003 等......并以 Winston 县结束,FIPS 代码为 133。所以我需要将 FIPS 代码 3 位数字附加到县文件夹名称,即 Autauga_001。我认为它就像添加 n+=2 一样简单,但它需要从 001 开始?

我很擅长编写批处理文件。花了好几个小时试图在这个网站上列出类似的代码以满足我的需要,但无济于事。

我该怎么做呢?提前致谢。

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    试试这个并删除echo命令,如果输出正常的话:

    @echo off&setlocal enabledelayedexpansion
    rem set root to the subfolder, where the 50 state folders are inside
    set "root=states"
    
    pushd "%root%"
    for /d %%i in (*) do (
        set /a counter=1001
        for /d %%j in ("%%~fi\*") do (
            set "newname=%%~nj_!counter:~-3!%%~xj"
            echo rename "%%~fj" "!newname!"
            set /a counter+=2
        )
    )
    popd
    

    【讨论】:

    • 感谢您的快速回复。我尝试了上面的代码,它通过整个目录(称为“stateimagery”)运行命令行,但不会将数字添加到文件夹名称中。将 root = states 更改为 root = stateimagery。还有什么我需要改变的吗?阿拉巴马州的目录如下所示:stateimagery\alabama\Autauga_Alabama。我需要它看起来像 stateimagery\alabama\Autauga_Alabama_001。
    • 如果您看到新名称正常,请从脚本中删除 echo 命令(在 rename 之前)。
    • 抱歉,没有看到您的评论。文件夹没有被重命名。他们是一样的?谢谢
    • 刚刚去掉了回声再试了一次。我最终得到一个 !newname!每个州的第一个县文件夹的文件夹。任何想法
    • Usenet:alt.msdos.batch.nt 是查找代码的 sn-ps 和与之讨论它们的人的好地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多