2个回答
2014-03-27
展开全部
我可以帮你,但你要讲明白那10个文件夹命名有没有规律,或者你是希望那把10个文件夹直接拖放到批处理上运行?那10个批处理是同时运行,还是1个1个的按顺序运行。先写下大概的代码,如果不是请说清楚。(为什么没人回答,是因为你没有说明白)
先写个拖放运行的(把那10个文件夹拖放到这个批处理上就行),假设那10个同名bat文件叫123.bat,1个执行完再执行另一个,不懂可以追问,可行请采纳:
@echo off
:Main
if "%~1"=="" exit /b
start /wait "" "%~1\123.bat"
shift /1
goto Main
先写个拖放运行的(把那10个文件夹拖放到这个批处理上就行),假设那10个同名bat文件叫123.bat,1个执行完再执行另一个,不懂可以追问,可行请采纳:
@echo off
:Main
if "%~1"=="" exit /b
start /wait "" "%~1\123.bat"
shift /1
goto Main
更多追问追答
追问
10个是同名的BAT文件,其实有好多,都 一样的,执行后会在每个文件夹里处理图片。
追答
例子都给你了,你把那10个文件夹拖放到批处理上就行,不知道你想问什么?
你是不是没用过批处理,批处理有一种简单的解析路径的方法就是“拖放打开”,不是直接双击打开批处理,而是你选中那10个文件,拖拽到批处理的图标上,松开鼠标左键,批处理会自动解析这10个路径的。
展开全部
::将1.BAT改改成你的同名文件
:: .\改成你的10个文件夹上阶路径,如10文件夹在D:则改成D:\
::双击运行
::主要是路径问题,PUSHD会转到对应路径并保存当前路径,POPD会切回当前路径.
::有经过测试~
for /r .\ %%a in (1.bat) do if exist %%a (
pushd %%~pa
call %%a
popd
)
追问
你的这段代码,可以满足要求,运行后成功了,也比较简单,帮我看看这段为什么不行?指教。
@echo off&setlocal enabledelayedexpansion
for /f %%a in ('dir /s 1.bat') do (
set "name=1.bat"
if exist !name! start "" "!name!">NUL
)
pause
追答
你的代码有几个地方有问题
1. for /f %%a in ('dir /s 1.bat')相当于下面两条指令
DIR /S 1.BAT >1.TXT
for /f %%a in (1.TXT)
你看一下1.TXT里面的内容,他会1行1行的传给%%a
一般都会用DIR /S /B 1.BAT,/B是要扩展到路径,不会包含1.BAT的大小及修改日期信息具体网上
看一下for /f的用法
2.for里面你没有用%%a了,那For就没有意义了
3.还是会有路径问题.
不推荐用这种方法~
不过你可以不去执行10个资料夹的相同的BAT,可以自己再写一个BAT啊~~
你写的BAT去取代这10个相同的BAT做的动作
如你的相同的BAT为1.BAT。
1.BAT会用1.EXE对资料夹内所有JPG档案进行压缩操作,压缩指令为1.EXE 1.JPG(10个资料夹均一样)
假设10个资料夹在D:\ 你可以自己写一个BAT
代码如下:
@echo off
for /f %%a in ('dir /s /b D:\*.jpg') do 1.exe %%a
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询