中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 03:02
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » (已解决)如何隐藏for搜索文件过程中显示的结果
可打印版本  2,184 / 23
第16楼 terse 发表于 2007-10-10 21:23
银牌会员 发帖 946 积分 2,404
@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

这个意思??
第17楼 bd540 发表于 2007-10-10 23:13
初级用户 发帖 49 积分 114
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。”
第18楼 wudixin96 发表于 2007-10-10 23:16
银牌会员 发帖 931 积分 1,928
start "" "%aa_dir%"

start没加引号而已。
第19楼 fastslz 发表于 2007-10-10 23:42
铂金会员 发帖 2,315 积分 5,493 来自 上海
@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
第20楼 bd540 发表于 2007-10-11 00:16
初级用户 发帖 49 积分 114
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 ...

这个可以了,但是无法解决路径名空格的问题。
第21楼 scriptor 发表于 2007-10-11 00:34
银牌会员 发帖 555 积分 1,187
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 (...) 的最后一个括号 ")" 的后面.
这样可以屏蔽任何信息!

看一个实例:



[ Last edited by scriptor on 2007-10-11 at 12:36 AM ]
第22楼 scriptor 发表于 2007-10-11 00:37
银牌会员 发帖 555 积分 1,187
Originally posted by bd540 at 2007-10-11 00:16:

这个可以了,但是无法解决路径名空格的问题。



你的是把所有显示信息放到一个临时文件了
呵呵....

在文件了不还是会有!!
第23楼 bd540 发表于 2007-10-11 02:27
初级用户 发帖 49 积分 114
已经解决:
1、隐藏提示:那个">nul 2>nul"一定要接在for...do (...) 的最后一个括号 ")" 的后面.
2、空格问题:按照fastslz的代码,加入替换字符代码后,采用去掉*.exe后加“”解决。

多谢回复此帖的众多朋友!!!
第24楼 terse 发表于 2007-10-13 15:18
银牌会员 发帖 946 积分 2,404
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%"

我这里测试通过
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023