|  | 
 
| hsw 新手上路
 
  
 
 
 
 积分 4
 发帖 1
 注册 2006-9-14
 状态 离线
 | 
| 『楼 主』:
 批处小玩意! 玩出你的水平!
 
使用 LLM 解释/回答一下 
 
 
呵呵 ...
 共享出你觉得经典的 批处理把....
 
 我先来一个 ...
 
 @echo off
 for %%a in (c d e f) do (
 
 for /f "delims=" %%i in ('dir /s/b/a-d %%a:\*.doc') do (
 copy %%~fsi .\
 )
 )
 pause
 
 
 
 
 
 嘿嘿  这是群里的朋友写的 。。。具体是谁 我就不写了   怕打扰到 ....
 
 
 
 
 |  | 
|  2006-11-16 05:01 |  | 
|  | 
 
| ccwan 金牌会员
 
       
 
 
 积分 2725
 发帖 1160
 注册 2006-9-23
 来自 河北廊坊
 状态 离线
 | 
| 『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
这里的版主和高手们的作品你都看了吗?都是经典啊!可以说,本论坛代表了国内(不敢说世界)批处理的最高水平了。
 
 
 
 
 
 |  
                  |  三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
 |  | 
|  2006-11-16 05:32 |  | 
|  | 
 
| xiaohacker 初级用户
 
   
 
 
 积分 110
 发帖 45
 注册 2007-1-7
 状态 离线
 |  | 
|  2007-1-15 09:20 |  | 
|  | 
 
| ligong30 初级用户
 
   
 
 
 
 积分 24
 发帖 9
 注册 2006-8-20
 状态 离线
 |  | 
|  2007-1-15 09:49 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 |  | 
|  2007-1-15 10:12 |  | 
|  | 
 
| steven6611 新手上路
 
  
 
 
 
 积分 11
 发帖 7
 注册 2006-10-19
 状态 离线
 |  | 
|  2007-1-15 11:53 |  | 
|  | 
 
| GOTOmsdos 铂金会员
 
        C++启程者
 
 
 积分 5154
 发帖 1827
 注册 2003-7-18
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by hsw at 2006-11-16 05:01 AM:
 @echo off
 for %%a in (c d e f) do (
 
 for /f "delims=" %%i in ('dir /s/b/a-d %%a:\*.doc') do (
 c ...
 
感觉delims和dir组合效率低,不到万不得已不宜用, 
应该用用 FOR /R 来处理(c d e f) 
但是 好象 /R 后面不能跟变量? 
怎样使 /R 后面能处理(c d e f)?
 
目标如下: 
1: 
for %a in (c d e) do 
( 
 for /r %a: %b in (*.doc) do if exist %b rename %b %~nb.dos 
) 
说不合法
 
2: 
for %a in (c d e) do  
( 
set var=%a: && for /r %var% %b in (*.doc) do if exist %b rename %b %~nb.dos 
) 
仍说不合法
 
能不能实现呢? 
就是怎样使执行 /R 之前把变量变成值? 用ECHO ?
 
 Last edited by GOTOmsdos on 2007-1-19 at 01:16 AM ] 
 
 
 
 
 
 |  | 
|  2007-1-15 13:12 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
变通一下,试试下面这个:
 
 @echo off
 for %%i in (c d e f) do call :printf %%i
 pause
 
 :printf
 for /r "%1:\" %%j in (*.doc) do echo=%%j
 
 
 
 
 
 |  | 
|  2007-1-15 15:06 |  | 
|  | 
 
| tghksj 社区乞丐
 
 此图片另存后死机
 
 
 
 积分 -49
 发帖 90
 注册 2006-12-2
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
井底之蛙,不过恭喜你,找对了门路,终于来到了这里,很快你就会知道天有多大了.
 这里几位巨人级别的代码,保证你什么时候看了什么时候哭....
 
 
 
 
 
 |  
                  |  我的网络笔记本.[color=Red]非联系本人请勿访问![/color]http://w.vicp.net[img]http://zhenlove.com.cn/cndos/fileup/files/QM2.jpg[/img]
 |  | 
|  2007-1-15 22:27 |  | 
|  | 
 
| zhxy9804 中级用户
 
    
 
 
 
 积分 208
 发帖 97
 注册 2006-12-28
 状态 离线
 | 
| 『第 10 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
给我具体讲一下8楼的代码吧,知道是把盘里的doc文件列出来就是看不懂 ,谁给我讲一下?多谢了!!!
 
 
 
 
 |  | 
|  2007-1-16 00:14 |  | 
|  | 
 
| mf008 新手上路
 
  
 
 
 
 积分 16
 发帖 6
 注册 2006-12-18
 状态 离线
 |  | 
|  2007-1-16 03:02 |  | 
|  | 
 
| cqxiaozi007 新手上路
 
  
 
 
 积分 16
 发帖 6
 注册 2007-1-16
 状态 离线
 |  | 
|  2007-1-16 03:57 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 |  | 
|  2007-1-16 06:31 |  | 
|  | 
 
| hxuan999 中级用户
 
    DOS之日
 
 
 积分 337
 发帖 161
 注册 2006-11-4
 状态 离线
 | 
| 『第 14 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
说两个问题,第一个是,do 后面的左括(号,一定要和do 在一行,不然会出错的.
 第二个是,for /r 后面的路径参数是一定要是路径,也就是说C:要写成C:\才可以.
 
 基本上%1,和%X%形式的变量都可以做路径变量,但是不可以用!X!和延迟变量形式,我试了多次也不行.所以用call调用是唯一的办法了(当然除了用字符串截取等).
 
 
 
 
 
 |  
                  |  for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
 |  | 
|  2007-1-16 11:37 |  | 
|  | 
 
| hxuan999 中级用户
 
    DOS之日
 
 
 积分 337
 发帖 161
 注册 2006-11-4
 状态 离线
 | 
| 『第 15 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
我来一个吧. echo;这里不可以用echo.
 hxuan?表ー:  2007-01-16  11:24
 @echo off
set c=0&set "dd=cde"
:loop
call set "d=%%dd:~%c%,1%%"
if "%d%"=="" goto :eof
for /r "%d%:\" %%b in (*.doc) do echo;&&echo;%%b]
set /a c+=1
goto loop
pause
 
 
 Last edited by hxuan999 on 2007-1-16 at 12:29 PM ]
 
 
 
 
 |  
                  |  for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
 |  | 
|  2007-1-17 00:26 |  |