【问题标题】:Logging of the success and failure status via Windows bat file通过 Windows bat 文件记录成功和失败状态
【发布时间】:2017-01-12 20:59:12
【问题描述】:

我正在创建一个 bat 文件以根据其中一项任务自动创建文件夹。我编写了一个简单的 for 循环来检查文本文件中的文件夹名称,然后自动创建该文件夹。

这里有两种情况:

案例1:如果文件夹不存在,则创建一个新文件夹。

案例2:将错误记录到文件夹已经存在的日志文件中,以防文件夹是现有的。(我使用>> folder_create_log.log 2>&1达到目的)

但是,我也想成功创建为 fodler 创建的日志。为此,我想到了使用 windows bat 文件的%errorlevel%

代码位如下:

set param="

for /F "delims=" %%a in (%FILE_NAME%.txt) do (
mkdir %param%S:\blitz2\Data\%%a\Audit%param% >> folder_create_log.log 2>&1
mkdir %param%S:\blitz2\Data\%%a\Working%param% >> folder_create_log.log 2>&1
mkdir %param%L:\ZaiUpload\Blitz\%%a%param% >> folder_create_log.log 2>&1
mkdir %param%L:\ZaiUpload\Blitz\%%a\Archive%param% >> folder_create_log.log 2>&1

echo %errorlevel%
pause
)

但由于>> folder_create_log.log 2>&1 工作正常,它被视为成功,%errorlevel% 显示为0 而不是1

谁能帮助我将成功的创建记录到日志文件中?

【问题讨论】:

  • 变量raram的作用是什么?

标签: windows batch-file command-line command


【解决方案1】:

md test && echo successful
&& 相当于“如果上一个命令成功,则”。
相反的是 || ,因此完整的命令可能如下所示:

md test && echo successful || echo failed

【讨论】:

  • ,可以在命令行上使用,谢谢。我的目的是将其记录到日志文件中以供参考。我试过mkdir ABC && echo Folder_Created || echo folder_Exists >> folder_create_log.log 2>&1,但是没有用。
  • @user2075017 - || 将左侧的命令直接与右侧的命令进行比较,它正在检查 echo 命令。该命令实际上应该是(mkdir ABC && echo Folder_Created) || echo failed
  • user2075017 (md test && echo successful || echo failed) >>file.txt。 @SomethingDark:不需要那个括号。没有它们也能正常工作。
  • @Stephan : 成功了,伙计。非常感谢您的帮助
猜你喜欢
  • 2017-01-17
  • 2017-08-28
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2014-09-14
相关资源
最近更新 更多