不确定什么是最好的(或更好的)方式来编写bat脚本来获取名称输入并搜索目录以查看它是否存在。
在运行比较之前,是否需要先将目录列表输出到文件中?
如果它有所不同,该目录在存储库中,所以为了我的目的,我将使用'svn list',但我认为一个很好的通用解决方案对每个人都会很好。
答案 0 :(得分:2)
如果您正在测试目录中的特定名称,那么通常会执行以下操作:
if exist name (echo found it) else (echo not found)
或者如果名称不完整
if exist *name* (echo found it) else (echo not found)
如果您要在目录树中的任何位置测试名称,那么我会使用
dir /s /a-d *name* >nul && (echo found it) || (echo not found)
如果您要发出一个生成输出行的命令,并且您想测试任何一行中是否存在名称,那么只要输出的大小不大且下半部分,Windows管道通常都能正常工作可以跟上上半场。
yourCommand | find "name" >nul && (echo found it) || (echo not found)
但是如果下半部分与上半年比较慢,那么管道效率会降低,并且必须缓冲大量数据。在这种情况下,使用临时文件而不是管道肯定更好。我在临时文件名中加入了一个随机数,以防止使用相同临时目录的多个进程可能发生冲突。
set tempFile="%temp%\myTempFileBaseName%random%.txt"
yourCommand >%tempFile%
<%tempFile% find "name" >nul && (echo found it) || (echo not found)
del %tempFile%
我通常使用管道,除非我知道我有性能问题。