如何用批处理完成 多文件、多文件夹 拖动到批处理上输出文件路径列表并根据列表文件逐项完成操作。

如何用批处理完成如下操作:1、将多个文件(或者几个文件夹;或者文件+文件夹)拖放在批处理上2、在系统temp目录下生成所有文件的绝对路径3、然后生成的文件列表,逐项进行操... 如何用批处理完成如下操作:

1、将多个文件(或者几个文件夹;或者文件+文件夹)拖放在批处理上
2、在系统temp目录下生成 所有文件的绝对路径
3、然后生成的文件列表,逐项进行 操作
a、执行conver.exe 无参数 【conver.exe 路径文件中的一条】(此时所有转换文件在源文件目录,并重新命名带(New)字样)
b、删除除包含(New)以外的文件【就是删除源文件】
c、重命名转换后的文件 去除(New)前缀

只有那点分了!
展开
 我来答
jd08139
2013-10-25 · TA获得超过3735个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2865万
展开全部
@Echo Off&Setlocal Enabledelayedexpansion
Del /q list.txt
For /l %%a in (1,1,9) do (Call Set "f=%%%%~a"
(If defined f Dir /a-d /b /s !f!)>>list.txt)
For /f "tokens=*" %%i in (list.txt) do (
conver.exe "%%i" 
Del /q /a "%%i"
Ren "%%~dpni_New%%~xi" "%%~nxi"
)
Pause

默认将文件列表生成到批处理所在文件夹中(方便查看,可以修改到temp中).默认生成的新文件名格式为 原文件名_New.txt,如果不是请手动修改一下代码.或者说明后我再修改代码.

更多追问追答
追问
除了刚才我发现的问题,能不能在最开始有个判断,如果直接拖动可进行处理,双击打开bat后,也能支持多文件,多目录拖动呢?然后仅在bat 上提示需要操作的共多少文件。
追答
@Echo Off&Setlocal Enabledelayedexpansion
Del /q "%temp%\list.txt" 2>nul
For /l %%a in (1,1,9) do (Call Set "f=%%%%~a"
(If defined f Dir /a-d /b /s !f!)>>"%temp%\list.txt")
For /f "usebackq tokens=*" %%i in ("%temp%\list.txt") do (
"%~dp0conver.exe" "%%i" 
Del /q /a "%%i"
Ren "%%~dpni_New%%~xi" "%%~nxi"
)
Pause
愈未央2I
2013-10-25 · TA获得超过676个赞
知道小有建树答主
回答量:668
采纳率:50%
帮助的人:485万
展开全部
把指定文件夹或文件路径生成txt放在temp?
运行路径中的conver.exe?
把txt中所有文件备份一份new文件名的文件?
删除原文件?
去掉new文件的new?

总结:new后又还原,这不是多此一举?还是conver自动修改了内容生成 的new文件,麻烦讲述清楚一点
追问
需要将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文件,把文件名更名为原文件名

不知道是不是你说的意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lifei259
2013-10-25 · TA获得超过1061个赞
知道大有可为答主
回答量:2341
采纳率:48%
帮助的人:738万
展开全部
@echo off
set a=%1 %2 %3 %4 %5 %6 %7 %8 %9
echo %a%
dir/s/b/a-d %a% ^|Findstr .jpg$ .doc$>%temp%\123.txt

type %temp%\123.txt
echo 以上是你要处理的文件请核对,如不是请ctrl+c退出
pause

For /f "tokens=*" %%I in (%temp%\123.txt) do (
conver.exe "%%I"
Del /q /a "%%I"
ren "%%~dpI_New%%~nxI" "%%~nxI"
)

pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式