如果这样的话,那我还没明白你的要求。你到底要干什么?你的意思是说要让一个 BATCH 自动去找到 Book.bat 所在的 E:\Tools\pub3 或其它目录的路径?
Originally posted by Sororal at 2006-11-16 22:21:
谢谢 0451lym 兄!
没搜索到 DIRT.COM ,
给发一个好吗 Sororal@21cn.com
谢谢啦!
DIRT使用说明如下:
Dirt.COM FileName.Ext (Ver 1.15)
(|)] HH:MM:SS]
注意:本程序的设置环境变量的功能,在下面这些系统中无法正常运行。
winXP,win2000,还有在Virtual PC中虚拟的任何系统
无论是否找到符合条件的文件,Dirt.COM在退出的时候,都会设置
环境变量DirtRet:Fail表示没有找到文件,Success表示找到文件。
=====================================================
Ver 1.15
更新日期 2005-11-07
升级说明:
(1)、修正上一版本在“不带路径和文件名”搜索时直接从根目录
查找的错误。
(2)、给原先的参数YYYY-MM-DD]增加自动计算日期的功能。
例子:
Rem 找昨天修改过的所有文件
dirt *.* /d:(-2)
在最后面那个有点长的例子,因为现在增加了“自动计算日期”的功能,
所以可以简化成下面这样:
@echo off
rem ============================================
rem 这个批处理的作用是删除d:\datafile里面
rem 最后一次修改是7天之前(不包括7天)的
rem 所有文件(包括所有子目录里的文件)
rem ============================================
attrib/s d:\datafile\*.* -h -r -s
:Loop
dirt.com /d:-(-7) d:\datafile\*.* /q
if %DirtRet%==Fail goto end
del %FPath%\%FName%
goto Loop
:end
=====================================================
Ver 1.14
更新日期 2005-10-29
升级说明:
(1)、修正上一版本在根目录搜索时找不到任何文件的错误。
(2)、给的功能增加带返回码退出的功能。
这样就能在2000或xp中使用该功能。目录存在,返回1,
不存在,返回0。
例子:
判断是否存在d:\aa,如果不存在就建立,并进入
@echo off
dirt /dir:d:\aa
if errorlevel 1 goto exist
echo make d:\aa
md d:\aa
:exist
cd d:\aa
=====================================================
Ver 1.13
更新日期 2005-10-14
升级说明:
(1)、修正上一版本中对“*.*”的错误分析。
(2)、增加参数
将找到的前10个文件保存下面的环境变量中
O2E_DriverX,O2E_PathX,O2E_FNameX
分别保存盘符、路径、文件名,其中最后的X是序号,
由0至9代替,如果查找的是目录,则不会设置O2E_FNameX
(3)、增加参数
在查找到的文件或目录里,一个找出时间是最早或最晚的,
并保存下面的环境变量中,FPath,FName
furthest是查找时间是最早的文件或目录
latest则相反
(4)、增加参数
Dos系统的主环境变量列表的长度有限,因此,要学会清理垃圾。
该功能就是清除由该程序产生的所有环境变量。
(注:由该程序产生的环境变量,无法用Dos的Set命令
清除或修改,因为Set命令不支持带有小写字母的变量名)
例子:
rem 查找D:下修改时间最晚的文件,并显示出来
dirt d:\*.* /time:latest
echo %FPath%\%FName%
rem 查找D:下创建时间最早的目录,并显示出来
dirt d:\*.*\ /time:furthest
echo %FPath%
=====================================================
Ver 1.12
更新日期 2005-09-22
升级说明:
(1)、改正“搜索路径分析”中一些错误。
(2)、增加文件夹搜索的功能。支持除之外的
所有参数。
但它找的是目录的“创建时间”,跟查找文件不同(查找文件是
按文件的“修改时间”),所以当目录被改名后,它的创建时间
不会改变。
在快捷模式中,将向环境变量FPath中写入包含要搜索
的文件夹在内的全路径,而不会设置FName
用法是:在路径最后加上斜杆,具体方法看下面的例子
例子:
dirt d:\ghost8\ /q
在D盘搜索一个叫“ghost8”的文件夹,如果找到就进入
@echo off
rem 注意ghost8后面一定要加上\
rem 不然就会变成是搜索文件
dirt d:\ghost8\ /q
if == goto notexist
cd %FPath%
goto end
:notexist
echo 没有找到该目录
:end
=====================================================
Ver 1.11
更新日期 2005-09-18
新增功能介绍:
判断某个文件夹是否存在,并设置环境变量Dir:Exist表示存在,
NotExist表示不存在
例子:
判断是否存在d:\aa,如果不存在就建立,并进入
@echo off
dirt /dir:d:\aa
if == goto exist
md d:\aa
:exist
cd d:\aa
=====================================================
Ver 1.1
新增功能介绍:
无论是否找到符合条件的文件,Dirt.COM在退出的时候,都会设置
环境变量DirtRet:Fail表示没有找到文件,Success表示找到文件。
在该版本中,还修正了1.0版中参数位置不能随意改变的错误。
作用跟dir命令的/w一样,每行显示5个文件名。
开启快捷模式,只要找到有一个符合条件的文件,立即结束查找。
并且会在环境变量FPath和FName中,分别写进文件路径和文件名。
另外,该程序现在编译成.com文件,它的体积比原先的dirt.exe
小了一半。
=====================================================
例子:
找出D盘中的Tc.exe文件,如果找到就直接运行,并打开D盘
根目录下的文件try.c,如果没有找到就显示提示信息。
@echo off
Dirt d:\tc.exe /Q
if %DirtRet%==Fail goto NoFind
d:
cd %fpath%
%fname% d:\try.c
goto quit
:NoFind
echo.
echo.
echo 在D盘没有找到tc.exe
:quit
=====================================================
Ver 1.0 的功能:
YYYY-MM-DD]
指定日期,必须够位数,如:
/d:2004-05-01 不能写成 /d:2004-5-1
里面的 是只比该日期更晚或更早
如:/d:-2004-05-01 搜索2004-05-01以前的文件
HH:MM:SS]
参考日期格式
时间和日期可以一起使用
搜索子目录的最多的层数,最多为两为数(即99),
/L:0 不搜索子目录
默认为所有层
====================================================
另一个例子:
@echo off
rem ============================================
rem 这个批处理的作用是删除d:\datafile里面
rem 最后一次修改是7天之前(不包括7天)的
rem 所有文件(包括所有子目录里的文件)
rem ============================================
rem ============================================
rem 得到7天前的日期
rem 如果今天是8月25,则7天前是日期是 8月18日
rem ============================================
GetInfo.COM /d:-7
set theDay=%year%-%mon%-%day%
rem ============================================
rem 这是在D:\datafile中搜索8天前(含8天)修改过的文件
rem 即8月17日 及 之前 修改的文件
rem ============================================
attrib/s d:\datafile\*.* -h -r -s
:Loop
dirt.com /d:-%theDay% d:\datafile\*.* /q
if %DirtRet%==Fail goto end
del %FPath%\%FName%
goto Loop
:end
千万别照搬,因为有个小小的错误,是使用上的.
这个.........