中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 07:56
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理打开文件夹
可打印版本  5,325 / 17
第1楼 online365 发表于 2006-11-25 10:56
初级用户 发帖 75 积分 182
批处理打开文件夹
我想写个批处理,dir /s /b /ad 后能打开指定的行数的文件夹(就是一个路径)

3Q....

麻烦打上 :: 好吗,方便我阅读....
第2楼 redtek 发表于 2006-11-25 11:57
金牌会员 发帖 1,147 积分 2,902
) FOR "skip=你要跳过的行数-1..." .............( dir /s /b /ad ........) do ......找到的这个第一个(因已跳过n行),所以这行的%%i的值就是你要找的文件夹,
然后 START "文件夹的名字%%i”,,,后面就跳出 For 了:)

) 上面是获得文件夹的原理

) 请online365兄一定要自己亲自写出来,那怕只有一句也没有关系,这里还有这么多网友可以帮助你:)
  但是,如果online365兄一句也不写,则很难学会批处理和很难再进步的啊~:)

[ Last edited by redtek on 2006-11-24 at 11:01 PM ]
第3楼 namejm 发表于 2006-11-25 11:58
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  把你的 dir 结果帖上来,然后说一下要指定哪一行。
第4楼 lxmxn 发表于 2006-11-25 13:14
版主 发帖 4,938 积分 11,386

第5楼 online365 发表于 2006-11-25 21:57
初级用户 发帖 75 积分 182
RE redtek:

代码是不是这样的啊??
for /f "skip=10" %%i in ('dir /s /b /ad') do echo %%i
这样不行啊,他只是跳过了第10行,但是第10行以后的还是会出现..
其实我自己也动了手的,但是试了多次都失败了,所以把它删了.呵呵,抱歉..

RE namejm:

我就是想 dir /s /b /ad c: 然后再指定打开第几行的文件夹...

RE lxmxn:

谢谢,非常好用,也成功解决了我之前无法解决路径含空格的问题~~ 决定加分~

redtek 大哥能再说详细点吗?谢谢了~~
第6楼 redtek 发表于 2006-11-25 22:11
金牌会员 发帖 1,147 积分 2,902
回online365 兄: 

  lxmxn兄4楼代码中 start "" "%%a" 的指令是打开通过 Skip跳过指定行数的第一次for赋给%%i变量的内容,
  这个%%i的内容就是你需要并指定的第n行目录名:)

  所以,lxmxn兄在 start "" "%%a" 找到并打开目录的代码后面执行了: goto cn-dos 
  这样就可以结束 For 的操作了,如果这时候不结束(使用 goto 跳转出 for)那么 For 的特性可是全都读干净了才能退啊~:)
  如果让 For 读干净了信息,那你需要的可就不是指定的第n行目录名了~:)


  原理:使用for的skip参数指定跳过目标信息n行的操作来达到高速取得第n行目标信息,以加快速度和让操作变得更“直接”~:)
     (如果目标信息有10行,如果skip=10,那么for跳过10行,你读到的将是第10以后的第11行信息。所以有时候用n-1……)

     然后再利用 Goto 转向原理在得到需要的内容后,直接跳出for。
     就相当于中断了For的操作:)

     

[ Last edited by redtek on 2006-11-25 at 09:21 AM ]
第7楼 online365 发表于 2006-11-25 22:27
初级用户 发帖 75 积分 182
非常感谢 redtek 大哥,完全明白了为什么我自己试的会显示跳过的行数后面所有的内容了...
第8楼 ccwan 发表于 2006-11-25 23:08
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
呵呵……加分!
第9楼 redtek 发表于 2006-11-26 01:00
金牌会员 发帖 1,147 积分 2,902
多谢online365和ccwan兄加分鼓励~:)

下面是另一种(另类)实现显示指定第n行目录名的方法~:)
只为试图实现不用for、不用临时文件看能不能实现显示第n行目录名的想法,不求实用,哈哈……

(只显示指定 DIR /B /AD 目录列表的第n行的目录名)
(注:这指令不危险,但是它会改变你运行这条指令的当前盘的卷标,实验完后请改回)

直接在命令行上键入指令:

如果当我 DIR /B /AD 列目录这样的内容:


我想用指令显示出第2行目录列表的内容:Application Compatibility Scripts

命令行键入以下代码:(显示目录列表中的第2行目录名-就是n-1的行--所以用了 MORE +1 就相当于跳过第1行显示)
          (显示的第1个内容就是第2行实际内容。)



得到结果:


用了 find /v "无效" 是因为卷标只允许最长32个字节,但上面取出的内容超过了规定长度,所以滤掉了系统提示无效的内容:)



但上面这个想法能不能再让它稍微从另类的玩笑指令操作到实用一点点呢?
于是可以这样:



这样,运行以后,这个Application Compatibility Scripts被取出的内容就会存到你的剪辑板中,用的时候鼠标右键菜单里选择 “粘贴” 功能就行了:)

(使用前请记下卷标,以防被修改之后再改回喜欢的名字)

[ Last edited by redtek on 2006-11-25 at 12:04 PM ]
第10楼 ccwan 发表于 2006-11-26 01:33
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
我在WINDOWSXP SP2 下测试通过。加分!

redtek兄技术精,思路广,讲解明了,确令我佩服。
第11楼 online365 发表于 2006-11-26 02:39
初级用户 发帖 75 积分 182
再次谢谢 redtek 大哥,呵呵,又学一招...
第12楼 lxmxn 发表于 2006-11-26 20:33
版主 发帖 4,938 积分 11,386

  CLIP 是个外部小工具么?可否发上来用用?
第13楼 不得不爱 发表于 2006-11-26 21:35
超级版主 发帖 2,044 积分 5,310 来自 四川南充
lxmxn的代码不错,加5分
第14楼 redtek 发表于 2006-11-26 22:04
金牌会员 发帖 1,147 积分 2,902
CLIP.exe 是 Windows Server 2003系统自带剪贴板工具,只能写到剪贴板,但不能读取。虽自带另一个读取剪贴板的工具clipbrd.exe但根本不实用。
所以,如果操作更多的功能有如下第三方工具可以使用:)


第三方超强剪贴板数据操作工具(读取、写入、其它操作)以及使用方法详见下面精华贴~:)

批处理代码发帖着色脚本 Batch2ubb(CMD & GAWK)
http://www.cn-dos.net/forum/viewthread.php?tid=21664&fpage=1&highlight=%5B%E5%8E%9F%E5%88%9B%5D%E6%89%B9%E5%A4%84%E7%90%86%E4%BB%A3%E7%A0%81%E5%8F%91%E5%B8%96%E7%9D%80%E8%89%B2%E8%84%9A%E6%9C%AC%2BBatch2ubb%EF%BC%88CMD%2B%2B%2BGAWK%EF%BC%89


关于剪贴板工具的简单帮助信息:)


[ Last edited by redtek on 2006-11-26 at 09:05 AM ]

附件
clip.rar (34.27 KiB)
第15楼 ccwan 发表于 2006-11-26 22:34
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
收下了。谢谢
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023