精品技术论坛

精品技术论坛 (https://bbs.et8.net/bbs/index.php)
-   『软件使用』 (https://bbs.et8.net/bbs/forumdisplay.php?f=17)
-   -   【求助】求几个批处理 文件列表的命令,当前目录下的! (https://bbs.et8.net/bbs/showthread.php?t=1011351)

kondy 2011-02-09 17:39:40

【求助】求几个批处理 文件列表的命令,当前目录下的!
 
在当前目录下生成txt文本或者指定目录的,麻烦哪位给下模版指点下,之前有一个在哪找不到了,找了些教程看的也晕! thks

aspirer 2011-02-09 18:14:56

tree >list.txt

sungwehan 2011-02-10 08:57:51

这个批处理,可以同时生成3个目录文件。。

引用:

@rem 此BAT文件名一定不能是"tree.bat",否则tree命令会实效,不知道为什么
@rem 可能是因为系统目录有"tree.com",系统会混淆吧.
@rem 用"dir.bat"作文件名却可以.
@echo off
rem 在当前目录生成很漂亮的结构树
tree /f > 1.TXT
rem 象DIR命令一样,不过每个下级目录文件也列出
DIR /S > 2.txt
rem 简洁地列出目录当前目录文件
DIR /d > 3.txt


mouze 2011-02-10 15:42:03

引用:

作者: sungwehan (文章 10748628)
@rem 此BAT文件名一定不能是"tree.bat",否则tree命令会实效,不知道为什么
@rem 可能是因为系统目录有"tree.com",系统会混淆吧.
@rem 用"dir.bat"作文件名却可以.

在命令行窗口内 运行命令,如果不键入扩展名,是有如下的执行次序的:

首先是内部命令(如:dir、copy等),然后依次是 .com、 .exe、 .bat、 .cmd 等外部命令。

当你执行命令“tree”时,系统会先查找有没有“tree”这个内部命令,没有的话,就在当前目录内依次查找tree.com、 tree.exe、 tree.bat、 tree.cmd 这些外部命令;

如果仍然没有,则按 %path% 变量里定义的路径去依次查找。。。

用来列目录树的“tree”命令实际上是外部命令“tree.com”,并且默认放在c:\windows\system32\目录内(此目录包含在默认的%path%内,并且排第一)。

所以,楼上批处理程序如果命名为“tree.bat”,其中的“tree /f > 1.TXT”这句会调用tree.bat本身,造成死循环;

解决方法有3个:

1、命名为其它名字,比如:tree1.bat
2、把“tree /f > 1.TXT”这句改写为“tree.com /f > 1.TXT”
3、把tree.com复制到当前目录内,与tree.bat放在一起,但是这时不能运行tree,而要运行tree.bat或在资源管理器内双击tree.bat

以上任意一个方法均可。

另外,如果命名为dir.bat,那就不能运行dir,而要运行dir.bat或在资源管理器内双击dir.bat,因为如果直接运行dir,那就会执行内部命令的dir,而不是运行dir.bat了。


所有时间均为北京时间, 现在的时间是 11:30:10.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号