如何屏蔽批处理For循环批量转TXT为PDF的输出避免日志占满
批处理For循环批量转PDF完全静默运行实现方法
单独添加2>NUL无法屏蔽所有输出的原因很简单:这个参数只会拦截编号为2的标准错误流,批处理本身的命令执行回显、转换程序输出的标准流(编号1)、文件匹配失败的系统提示都不会被拦截,自然没法达到静默效果。
修改后的完整可用脚本如下:
@echo off SETLOCAL ENABLEDELAYEDEXPANSION FOR %%F IN (D:\TEMP\FILE*.TXT) DO ( SET "TMPFILE=%%F" SET "NEWFILE=!TMPFILE:~0,-4!.PDF" C:\EXE\txt2pdf.exe "!TMPFILE!" "!NEWFILE!" -PFS9 >NUL 2>&1 ) ENDLOCAL
关键配置说明:
- 脚本首行添加
@echo off:全局关闭批处理命令的执行回显,运行时不会逐行打印正在执行的命令内容 - 调用
txt2pdf.exe的命令尾部添加>NUL 2>&1:先将标准输出重定向到系统空设备NUL(所有正常运行日志直接丢弃),再将错误输出重定向到和标准输出相同的目标,程序输出的正常日志、报错信息都会被完全拦截 - 变量赋值、文件路径参数包裹双引号:避免路径中存在空格时出现执行错误,属于配套的稳定性优化
如果需要彻底屏蔽脚本本身启动、执行结束的所有系统级提示,可以在调用该批处理文件时,同样追加输出重定向参数:convert_script.bat >NUL 2>&1
内容的提问来源于stack exchange,提问作者dudesowetodit
相关产品推荐
相关产品推荐

