中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已解决)如何隐藏for搜索文件过程中显示的结果
<   <<   [1] [2]  >>
作者:
标题: (已解决)如何隐藏for搜索文件过程中显示的结果 上一主题 | 下一主题
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 16 楼』:  

@echo off setlocal enabledelayedexpansion set "aa_dir=" for %%a in (F E D C) do ( for /f "delims=" %%i in ('dir /a /b /s "%%a:\avp.exe"2^>nul') do if not defined aa_dir set aa_dir=%%~dpi ) start "" %aa_dir% pause 这个意思??


2007-10-10 21:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bd540
初级用户





积分 114
发帖 49
注册 2006-10-8
状态 离线
『第 17 楼』:  

Originally posted by terse at 2007-10-10 21:23: @echo off setlocal enabledelayedexpansion set "aa_dir=" for %%a in (F E D C) do ( for /f "delims=" %%i in ('dir /a /b /s "%%a:\avp.exe"2^>nul') do if not define ...
多谢。但还是不成,提示“系统找不到文件 C:\Documents。”


2007-10-10 23:13
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 18 楼』:  

start "" "%aa_dir%" start没加引号而已。


2007-10-10 23:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 19 楼』:  

@echo off for %%i in (F E D C) do ( dir /a /b /s %%i:\avp.exe|find /i "avp.exe">temp.txt if not errorlevel 1 goto end ) echo 没找到avp.exe pause :end cls set /p Program=<temp.txt echo start "%Program%" pause




2007-10-10 23:42
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bd540
初级用户





积分 114
发帖 49
注册 2006-10-8
状态 离线
『第 20 楼』:  

Originally posted by fastslz at 2007-10-10 23:42: @echo off for %%i in (F E D C) do ( dir /a /b /s %%i:\avp.exe|find /i "avp.exe">temp.txt if not errorlevel 1 goto end ) echo 没找到avp.exe pause :end cls set /p ...
这个可以了,但是无法解决路径名空格的问题。


2007-10-11 00:16
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 21 楼』:  

Originally posted by bd540 at 2007-10-10 13:17: 这段代码运行时显示“设备没有准备好”“找不到文件”等信息,如何将这些信息隐藏呢?我把>NUL加了几个地方都提示错误。 for %%a in (Z Y X W ...
这个问题有人问过的 我当时给出了解决办法 其实就是这样的格式:----可以处理含有空格文件名和路径 for "delims=" %%a in (xx) do ( ...... ) >nul 2>nul ...... 代表你要做的一切操作,不论多少行,多少命令都可以的; 那个">nul 2>nul"一定要接在for...do (...) 的最后一个括号 ")" 的后面. 这样可以屏蔽任何信息! 看一个实例:
@echo off

for  /f "delims=" %%i in ("%cd%") do (
echo %%i
dir c:\
dir x:\

) >nul 2>nul
[ Last edited by scriptor on 2007-10-11 at 12:36 AM ]


2007-10-11 00:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 22 楼』:  

Originally posted by bd540 at 2007-10-11 00:16: 这个可以了,但是无法解决路径名空格的问题。
你的是把所有显示信息放到一个临时文件了 呵呵.... 在文件了不还是会有!!


2007-10-11 00:37
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bd540
初级用户





积分 114
发帖 49
注册 2006-10-8
状态 离线
『第 23 楼』:  

已经解决: 1、隐藏提示:那个">nul 2>nul"一定要接在for...do (...) 的最后一个括号 ")" 的后面. 2、空格问题:按照fastslz的代码,加入替换字符代码后,采用去掉*.exe后加“”解决。 多谢回复此帖的众多朋友!!!


2007-10-11 02:27
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 24 楼』:  

Originally posted by bd540 at 2007-10-10 23:13: 多谢。但还是不成,提示“系统找不到文件 C:\Documents。”
最后忘记加个“” @echo off setlocal enabledelayedexpansion set "aa_dir=" for %%a in (F E D C) do ( for /f "delims=" %%i in ('dir /a /b /s "%%a:\avp.exe"2^>nul') do if not defined aa_dir set aa_dir=%%~dpi ) start "" "%aa_dir%" 我这里测试通过


2007-10-13 15:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<   <<   [1] [2]  >>
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: