如何用批处理完成如下操作:
1、将多个文件(或者几个文件夹;或者文件+文件夹)拖放在批处理上
2、在系统temp目录下生成 所有文件的绝对路径
3、然后生成的文件列表,逐项进行 操作
a、执行conver.exe 无参数 【conver.exe 路径文件中的一条】(此时所有转换文件在源文件目录,并重新命名带(New)字样)
b、删除除包含(New)以外的文件【就是删除源文件】
c、重命名转换后的文件 去除(New)前缀
只有那点分了!
默认将文件列表生成到批处理所在文件夹中(方便查看,可以修改到temp中).默认生成的新文件名格式为 原文件名_New.txt,如果不是请手动修改一下代码.或者说明后我再修改代码.
除了刚才我发现的问题,能不能在最开始有个判断,如果直接拖动可进行处理,双击打开bat后,也能支持多文件,多目录拖动呢?然后仅在bat 上提示需要操作的共多少文件。
追答@Echo Off&Setlocal Enabledelayedexpansion好的,现在执行下来,能使用了,非常感谢。
【还有两个请求】
【1】就是一次最多9个文件,能不能修改称为,递归式的,因为不知道 一些文件夹目录下有多少个。
【2】只针对jpg 和 doc文件进行转换,是不是在生成list.txt的时候有个判断?
当前代码最多支持9个.多出的部分会被忽略.你没仔细测试,默认处理文件夹以及子文件夹中的文件.
生成时过滤会略微影响效率,所以改在转换前过滤.
非常感谢,你太厉害了,我自己写了半天都无法达到效果。
conver在运行的时候会有echo显示,如何屏蔽,而直接显示
正在运行....
需要将jpg 和 doc 文件生成的路径文件放在缓存,其实放哪里都一样,为了方便也可以放在bat文件目录下
conver.exe于 bat 同目录
conver 这是个命令行软件 无任何参数,强制转换后添加名字
conver后 文件添加了一些标识,所以算是全新的文件
@echo off
set /p a=拖入文件或目录
for /f "tokens=*" %%i in ('dir /a-d /b %a%') do (
echo %%~dpi>>login.txt
conver
del %%i
)
for /f "tokens=*" %%a in ('dir /a-d /b new%%~nxi') do (
ren %%a %%~nxi
)
把拖入的文件路径 放到login.txt里,调用conver
默认当作conver会把文件产生一个new文件
删除原文件
遍历刚刚的new文件,把文件名更名为原文件名
不知道是不是你说的意思