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

Batch file 批处理文件重命名和目录自动计数,batch-file,Batch File,我需要一种方法来创建一个包含文件名的目录,但每创建一个目录就要计算+1 如何在创建的目录名前面添加+1 例如: 如果存在目录1\u xxx,则生成2\uxxxxx 目前,我正在使用下面的文件名创建一个目录 文件名例如:Card_24ALL Sms.csv 目录输出例如:卡\u 24所有短信 目前我有手动添加+1的目录1_ 1_Card_24ALL Sms(内部复制文件Card_24ALL Sms.csv) 2_Card_25ALL Sms(内部复制文件Card_25ALL Sms.csv) 3_

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

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

例如:

如果存在目录1\u xxx,则生成2\uxxxxx

目前,我正在使用下面的文件名创建一个目录

文件名例如:Card_24ALL Sms.csv

目录输出例如:卡\u 24所有短信

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

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

2_Card_25ALL Sms(内部复制文件Card_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\u目录,因为前面的号码可以是99\uu

请尝试以下操作:

@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中移除回声,并在验证输出后移动

你好@Matt好的,我收到了目录:)感谢您的快速回复。看,现在我有更多的文件,我必须添加和运行以上,然后重新创建文件夹1_命名让我们说我运行了四个文件,并需要目录命名继续5_u例如:我运行了四个文件使用您的代码。所以我得到了1个命名2个命名3个命名4个命名完美。。。我每小时收到更多的文件。我如何从上一个数字中继续获得5个单位的命名,而不是再次获得1个单位的命名。谢谢你在这方面的帮助,这很容易。我刚刚让它将最后一次计数写入一个文件,并在脚本运行时读取。非常感谢,我现在就尝试一下。谢谢。完美:)谢谢@Matt WilliamsonAfternoon@Matt Williamson。我最近遇到了一个问题,除非我将5号线和6号线移到一起,否则系统将停止运行。。。cd/d c:\temp if exist cnt.txt for/f%%a in(cnt.txt)不设置%%a,但在上述情况下,自动计数停止工作并继续重置为1。我不知道这是否是由于Windows7的更新。目前我在我的家用电脑上使用Service Pack1,运行非常好。我一直试图用空闲时间解决这个问题,但运气不佳。如有任何建议,我将不胜感激。