需求:文件名称格式为:CRP_9648900000_000000000000.txt 复制300份命名如下:
CRP_9648900000_000000000001.txt
CRP_9648900000_000000000010.txt
CRP_9648900000_000000000299.txt
第一个想到就是用bat处理:
version A:这个方法后面要讨论去掉几个零的问题,有点重复了。
for /l %%a in (1,1,9) do copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_00000000000%%a.txt" for /l %%a in (10,1,99) do copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_0000000000%%a.txt" for /l %%a in (100,1,299) do copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_000000000%%a.txt"
这个方法先生成是1001 ~1299 后改名 位0000~0299
for /l %%a in (1001,1,1299) do copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_00000000%%a.txt"
ren *.txt CRP_9648900000_000000000*.txt
想参考这个自动生成300个目录的方法,001~300
@ECHO OFF
FOR /L %%i IN (1001,1,1100) DO (
CALL :MDIR %%i
)
GOTO :EOF
:MDIR
SET a=%1
MD %a:~1,3%
GOTO :EOF
VERSION C:
先设置循环 1001~1299 取出 001~299 到文件名称后三位替换掉即可。
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1001,1,1299) do (
set n=%%a
set m=!n:~1,3!
copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_000000000!m!.txt" //此处去掉三个0用 !m!
)
pause
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1001,1,1299) do (
set n=%%a
set m=!n:~1,3!
copy "E:\workspace\testData\CRP_9648900000_000000000000.txt" "E:\workspace\testData\CRP_9648900000_000000000!m!.txt"
)
pause