如何基于带有序号的文本文件批量制作文件夹

时间:2018-10-25 01:32:39

标签: windows batch-file command-line

我有一个类似下面的文本文件。

foo
bar
baz
qux

我还制作了一个批处理文件,该批处理文件由文本文件创建文件夹,但是如何为每个文件夹名称添加顺序号(可能以零开头)?

for /f "delims=" %%f in (%1) do (
  md "%%f"
)

我想要这样的结果:

foo_001
bar_002
baz_003
qux_004

最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

基本上,您有两种选择。创建一个计数器变量,并在FOR命令中递增。或者,您可以使用FINDSTR命令创建我选择执行的数字。

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%G in ('findstr /N "^" "%~1"') do (
    set num=000%%G
    md "%%H_!num:~-4!"
)

答案 1 :(得分:0)

仅显示使用计数循环并从文件读取输入至少有第三种方式:

:: Q:\Test\2018\10\25\SO_52980091.cmd
@Echo off & Setlocal EnableDelayedExpansion

<SO_52980091.txt (
  For /l %%A in (1001,1,1999) do (
        Set /p "Input="
        if not defined Input goto :Eof
        Set Num=%%A
        MD "!Input!_!Num:~-3!"
        Set "Input="
  )
)

我证明Squashmans批次更优雅/更短。