标题: [文件操作] 批处理for命令使用疑问 [打印本页]
作者: crist 时间: 2015-11-1 00:58 标题: 批处理for命令使用疑问
- @echo off
- pushd %~dp0
- setlocal enabledelayedexpansion
- for /f "eol=; delims=" %%i in (list.log) do (
- echo installing %%i && "%%i" /quiet /norestart && echo ok
- )
- pause
复制代码
请问为何运行后没有显示"ok"?
作者: 依山居 时间: 2015-11-1 02:08
你自己知道你那一整行echo是什么意思吗?
作者: CrLf 时间: 2015-11-1 02:40
list.log 不为空的话,有两个可能:
1、list.log 里的内容都是以 ; 开头的字符串,所以被跳过了
2、"%%i" /quiet /norestart 执行后返回值不为 0
作者: crist 时间: 2015-11-1 11:21
回复 3# CrLf
&& echo ok的意思是前面成功才显示ok吧?
| echo ok倒是能显示ok,但意思好像不大一样
作者: crist 时间: 2015-11-1 11:24
回复 2# 依山居
先提示正在安装什么补丁,再执行安装,如果前一条命令执行成功就提示ok
作者: bailong360 时间: 2015-11-1 11:27
- @echo off
- pushd %~dp0
- setlocal enabledelayedexpansion
- for /f "eol=; delims=" %%i in (list.log) do (
- echo installing %%i
- "%%i" /quiet /norestart
- echo ok
- )
- pause
复制代码
作者: 依山居 时间: 2015-11-1 11:40
回复 4# crist
差别大了。
作者: /zhqsystem/zhq 时间: 2015-11-1 21:57
%%i的内容是什么?用到了引号"路径程序"直接执行没有关闭,系统是该判断成功执行呢?还是没有成功执行?再或者是正在执行中,因为直接执行的程序在没有执行完成无法获取返回值
作者: crist 时间: 2015-11-1 22:09
回复 8# /zhqsystem/zhq
%%i是list.log里面的文件名,用引号是预防list.log里面的文件名有空格,想用echo installing %%i && start "" "%%i" /quiet /norestart && echo ok命令可虽然显示ok但实际没有安装到%%i
作者: /zhqsystem/zhq 时间: 2015-11-1 22:44
回复 9# crist
将start改为start/w
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |