批处理文件重命名和目录自动计数

时间:2014-03-05 14:47:33

标签: batch-file

我需要一种方法来创建一个包含文件名的目录,但是对于每个创建的文件都要计算+1。

如何在创建的目录名称前添加+1

例如:

如果存在目录1_xxx,请输入2_xxxxx

目前我在下面使用从Filename

创建目录

文件名例如:Card_24ALL Sms.csv

目录输出例如:Card_24ALL Sms

目前我有手动添加+1的目录1 _

1_Card_24ALL Sms(内部复制文件卡_24ALL Sms.csv)

2_Card_25ALL短信(内部复制了文件卡_25ALL Sms.csv)

3_Tjek_24ALL Sms(文件Tjek_24ALL Sms.csv在里面复制)

使用下面的代码我可以获得包含给定文件名的目录:

@echo off
for %%a in (*.csv) do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)

但我必须手动创建前面的数字以获取number_directory,因为前面的数字可以是99_

1 个答案:

答案 0 :(得分:1)

试试这个:

@echo off
setlocal enabledelayedexpansion

@echo off
cd /d c:\temp
if exist cnt.txt for /f %%a in (cnt.txt) do set %%a
for %%a in (*.csv) do (
set /a cnt+=1
echo md "!cnt!_%%~na" 2>nul
echo move "%%a" "!cnt!_%%~na" >nul && (
Echo File %%~nxa moved to !cnt!_%%~na) || (Echo Move failed.)
)
>cnt.txt echo cnt=!cnt!

从md中删除回声并在验证输出后移动。