我有一个类似下面的文本文件。
foo
bar
baz
qux
我还制作了一个批处理文件,该批处理文件由文本文件创建文件夹,但是如何为每个文件夹名称添加顺序号(可能以零开头)?
for /f "delims=" %%f in (%1) do (
md "%%f"
)
我想要这样的结果:
foo_001
bar_002
baz_003
qux_004
最诚挚的问候。
答案 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批次更优雅/更短。