标题: [代码合集] 如和重定向for /f %i in (`dir`) do ..命令中dir的输出 [打印本页]
作者: vinwin 时间: 2021-11-6 14:27 标题: 如和重定向for /f %i in (`dir`) do ..命令中dir的输出
1.如何捕获dir命令执行后的错误输出
2.如何捕获dir命令执行后的errorlevel
作者: yakeyun 时间: 2021-11-6 15:25
回复 1# vinwin
最好举个栗子,一般DIR没限制条件是不会报错的。
作者: Batcher 时间: 2021-11-6 15:37
回复 2# yakeyun
找不到文件的时候会报错- @echo off
- for /f "delims=" %%i in ('dir /b "FileNotExist" 2^>^&1') do (
- echo 捕获到:%%i
- )
- pause
复制代码
作者: yakeyun 时间: 2021-11-6 17:01
回复 1# vinwin
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=, " %%a in ('dir /a /s /b C:\intel\PieExtension.cat ') do (
if %errorlevel% == 0 (
echo 已找到文件
) else (
echo 找不到文件
)
)
pause>nul
作者: vinwin 时间: 2021-11-6 18:31
本帖最后由 vinwin 于 2021-11-6 18:41 编辑
回复 4# yakeyun
谢谢,2楼转义有效
您提供的代码,这里的errorlevel任何情况都是0啊,并没有捕获dir执行情况的errorlevel
作者: vinwin 时间: 2021-11-6 18:39
回复 3# Batcher
奇怪了..开始试过转义不行,现在又可以了。
请问如何捕获dir的errorlevel?- @echo off
- setlocal enabledelayedexpansion
- for /f "usebackq delims=" %%i in (`dir /s /b "D:\test\*xxx*" 2^>nul `) do (
- echo !errorlevel!
- )
- pause
复制代码
以上代码测试后dir无论是否找到文件errorlevel都是0(找不到的情况应该是1),所以这里的errorlevel不是dir的怀疑是for的)
作者: Batcher 时间: 2021-11-6 19:22
回复 6# vinwin - @echo off
- for /f "delims=" %%i in ('dir /b "1.txt" 2^>^&1') do (
- if "%%i" equ "找不到文件" (
- echo dir命令没有找到文件
- ) else (
- echo dir命令找到了文件
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |