标题: 求以本文件夹如12345为基础生成12346的文件夹
[打印本页]
作者: 17500
时间: 2007-11-22 02:41
标题: 求以本文件夹如12345为基础生成12346的文件夹
因本人要经常做重复性的动作,郁闷死啦,想请各位大虾帮忙编写一个批处理命令,把小弟从困苦中解救处理~感激不尽!要求如下:
一 以本文件夹如12345为基础生成12346的文件夹(12345和12346都位于同一父目录)
二 并把12345文件夹已经存在的12345_1_01.tif 12345_2_01.tif 12345清单.doc复制到12346文件夹中,并改成相应的文件名,即12346_1_01.tif 12346_2_01.tif 12346清单.doc
三 把12345_2_01.tif 复制成两个新的文件12345_2_02.tif 12345_2_03.tif 在12345文件夹中 原来的 12345_2_01.tif 要保留
四 执行顺序为 一 ,二 , 三,并把此批处理命令复制到12346文件夹中,并在12345文件夹中删除掉此批处理命令
作者: lxmxn
时间: 2007-11-22 08:10
自己思考以后再来提问,这里不是微软售后服务中心。
作者: 17500
时间: 2007-12-3 18:26
标题: 请问第三点怎样实现啊?
多谢版主的激励,第一、二点以解决,但第三点还没有想到办法实现,请教各位,第三点如何实现啊?谢谢拉
作者: lxmxn
时间: 2007-12-3 20:06
Quote: |
Originally posted by 17500 at 2007-12-3 18:26:
多谢版主的激励,第一、二点以解决,但第三点还没有想到办法实现,请教各位,第三点如何实现啊?谢谢拉 |
|
你试试这个,但是通用性不是很好:
@echo off & Setlocal EnableDelayedExpansion
for %%a in (12345_2_01.tif) do (
set filename=%%~nxa
for /f "delims=_. tokens=1-4" %%b in ("!filename!") do (
set /a file1=%%d+1
set /a file2=file1+1
set file1=0!file1!
set file2=0!file2!
set file1=!file1:~-2!
set file2=!file2:~-2!
copy "!filename!" "%%b_%%c_!file1!.%%e"
copy "!filename!" "%%b_%%c_!file2!.%%e"
)
)
作者: 17500
时间: 2007-12-3 22:44
标题: 不能实现
不能实现,因为我的 文件夹是随机生成的(全部为数字),有规律,就是111112,111113,111114...范围:000000至999999,所生产的tif文件名也是随机的,但跟文件夹的名字是类似的,也就是111112_1_01.tif, 111113_1_01.tif, 111114_1_01.tif ...所以难点在于如何将当前的文件夹的名字当成要改名的一部分,即一个变量,只是在后面添加上_1_02.tif这个后缀 ,而且要判断111114_1_02.tif是否存在,不存在才复制,已经存在的就不复制了,111114_1_03.tif也一样
现在附上取得当前文件夹名字的批处理,如下:
@echo off
:: 获取当前目录名
:: 当路径中含有空格、感叹号、点号、&和~的时候,也能正确提取
set "cd_=%cd%"
:loop
set "cd_=%cd_:*\=%"
set "cd_tmp=%cd_:\=%"
if not "%cd_tmp%"=="%cd_%" goto loop
echo "%cd_%"
pause
我就是不懂如何将文件名当成一个变量来用,在线等待,谢谢版主的帮助
作者: loveheartrain
时间: 2007-12-3 23:35
一样的啊SET NUM=12345
COPY %NUM%_2_01.tif %NUM%_2_02.tif %NUM%_2_03.tif
作者: 17500
时间: 2007-12-4 15:35
标题: 提示找不到文件
6楼的方法我以前已尝试过,但提示找不到文件,因为在每个文件的文件名都不是一样的