中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理打开文件夹 上一主题 | 下一主题
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『楼 主』:  批处理打开文件夹

我想写个批处理,dir /s /b /ad 后能打开指定的行数的文件夹(就是一个路径)

3Q....

麻烦打上  ::  好吗,方便我阅读....

2006-11-25 10:56
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 2 楼』:  

) 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 ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-25 11:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 3 楼』:  

  把你的 dir 结果帖上来,然后说一下要指定哪一行。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-25 11:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


@echo off
set/p choose=请选择你要打开的路径的行数:
cls
echo 请稍后,正在处理中…………
if "%choose%"=="1" start "" c:\ && goto cn-dos
set/a n=%choose%-1
for,/f,"delims= skip=%n%",%%a,in,('dir /ad/s/b c:\'),do,(
        start "" "%%a"
  goto cn-dos
)
:cn-dos
pause


   此帖被 +13 点积分     点击查看详情   
评分人:【 online365 分数: +2  时间:2006-11-25 21:57
评分人:【 redtek 分数: +3  时间:2006-11-25 22:12
评分人:【 ccwan 分数: +3  时间:2006-11-25 23:07
评分人:【 不得不爱 分数: +5  时间:2006-11-26 21:34


2006-11-25 13:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『第 5 楼』:  

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 大哥能再说详细点吗?谢谢了~~

2006-11-25 21:57
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 6 楼』:  

回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 ]

   此帖被 +5 点积分         点击查看详情   
评分人:【 online365 分数: +2  时间:2006-11-25 22:27
评分人:【 ccwan 分数: +3  时间:2006-11-25 23:08




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-25 22:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『第 7 楼』:  

非常感谢 redtek 大哥,完全明白了为什么我自己试的会显示跳过的行数后面所有的内容了...

2006-11-25 22:27
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 8 楼』:  

呵呵……加分!



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-11-25 23:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 9 楼』:  

多谢online365和ccwan兄加分鼓励~:)

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

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

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

如果当我 DIR /B /AD 列目录这样的内容:
addins
Application Compatibility Scripts
AppPatch
assembly
Cluster
…………很多……略…掉
我想用指令显示出第2行目录列表的内容:Application Compatibility Scripts

命令行键入以下代码:(显示目录列表中的第2行目录名-就是n-1的行--所以用了 MORE +1 就相当于跳过第1行显示)
          (显示的第1个内容就是第2行实际内容。)
dir /b /ad|more +1|LABEL 2>NUL|more +2|find /v ""|find /v "无效"
得到结果:
Application Compatibility Scripts
用了 find /v "无效" 是因为卷标只允许最长32个字节,但上面取出的内容超过了规定长度,所以滤掉了系统提示无效的内容:)



但上面这个想法能不能再让它稍微从另类的玩笑指令操作到实用一点点呢?
于是可以这样:
dir /b /ad|more +1|LABEL 2>NUL|more +2|find /v ""|find /v "无效"|CLIP
这样,运行以后,这个Application Compatibility Scripts被取出的内容就会存到你的剪辑板中,用的时候鼠标右键菜单里选择 “粘贴” 功能就行了:)

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

[ Last edited by redtek on 2006-11-25 at 12:04 PM ]

   此帖被 +10 点积分         点击查看详情   
评分人:【 ccwan 分数: +4  时间:2006-11-26 01:30
评分人:【 online365 分数: +2  时间:2006-11-26 02:39
评分人:【 IceCrack 分数: +4  时间:2006-11-26 21:45




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-26 01:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 10 楼』:  

我在WINDOWSXP SP2 下测试通过。加分!

redtek兄技术精,思路广,讲解明了,确令我佩服。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-11-26 01:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『第 11 楼』:  

再次谢谢 redtek 大哥,呵呵,又学一招...

2006-11-26 02:39
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 12 楼』:  


  CLIP 是个外部小工具么?可否发上来用用?


2006-11-26 20:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 13 楼』:  

lxmxn的代码不错,加5分



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-11-26 21:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 14 楼』:  

CLIP.exe 是 Windows Server 2003系统自带剪贴板工具,只能写到剪贴板,但不能读取。虽自带另一个读取剪贴板的工具clipbrd.exe但根本不实用。
所以,如果操作更多的功能有如下第三方工具可以使用:)


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

[原创]批处理代码发帖着色脚本 Batch2ubb(CMD & GAWK)
http://www.cn-dos.net/forum/view ... %2B%2BGAWK%EF%BC%89


关于剪贴板工具的简单帮助信息:)
CLIP.exe   剪贴板工具 (Windows Server 2003系统自带此工具)
=============================================================

描述:
    将命令行工具的输出重定向到 Windows 剪贴板。这个文本输出可以被粘贴到其他程序中。

参数列表:

    /?                  显示帮助消息。

示例:
    DIR | CLIP          将一份当前目录列表的副本放入 Windows 剪贴板。

    CLIP < README.TXT   将 readme.txt 的一份文本放入 Windows 剪贴板。






WinClip.exe  前贴板数据处理工具 (第三方工具)
=============================================================

usage: winclip [-v|h] [-w|u|m] [-l lang] [-s sublang] [-b] -c|-p|-i [filename]
        -v Display version and copyright information
        -h Display this help message
        -c Copy to clipboard
        -p Paste from clipboard
        -i Print the type of the clipboard's contents
        -u Data to be copied / pasted is in Unicode format
        -m Unicode data is multi-byte
        -b Include BOM with Unicode data
        -w Data is in the Windows code page (OEM code page is the default)
        -l Specify the language for the data to be copied
        -s Specify the sublanguage for the data to be copied
[ Last edited by redtek on 2006-11-26 at 09:05 AM ]

   此帖被 +5 点积分      点击查看详情   
评分人:【 online365 分数: +2  时间:2006-11-27 02:51
评分人:【 lxmxn 分数: +3  时间:2006-11-27 09:51


附件 1: clip.rar (2006-11-26 22:04, 34.27 K, 下载附件所需积分 1 点 ,下载次数: 28)


    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-26 22:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 15 楼』:  

收下了。谢谢



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-11-26 22:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: