gpt4 book ai didi

windows - 批处理文件创建日志文件

转载 作者:可可西里 更新时间:2023-11-01 10:19:23 25 4
gpt4 key购买 nike

这应该很简单不知道为什么它不起作用......我有一个包含 2 个命令的批处理文件,我试图让它将输出写入日志文件。

这是我的批处理文件中的内容:

PUSHD "\\My Very Long\Exact Directory\" >>logfile.txt
for /f "skip=7 eol=: delims=" %%F in ('dir /b /o-d *.xlsm') do del "%%F" >>logfile.txt

PUSHD 是因为此文件位于远程文件存储 \\My Very Long\Exact Directory\ 中,我希望在批处理文件所在的目录中执行操作,并且而不是调用它的目录。第二个命令通过删除旧副本来清理目录。

当我运行批处理时,无论是从远程服务器调用它,还是直接双击它,cmd 窗口都会打开并运行清理。它将在名为“logfile.txt”的目录中创建一个文件,但它是空的。

从远程服务器调用这个批处理文件的进程是调度的,我想看看后面调用这个时发生了什么。如何将结果写入日志文件。我想它看起来应该与 cmd 窗口弹出的打开和显示的内容非常相似(不一样)。

我引用了另一篇文章:Redirecting Output from within Batch file


添加更多,因为我被告知 PUSHD 和 DEL 都没有输出......我在文件中暂停以捕获 cmd 窗口。我希望捕获此信息,当然还有发生的任何错误。也许这是错误的方法?

X:\File Path\BackUps>PUSHD "\\My Very Long\Exact Directory\"  1>>logfile.txt
Y:\File Path\BackUps>for /F "skip=7 eol=: delims=" %F in ('dir /b /o-d *.xlsm') do del "%F" 1>>logfile.txt
Y:\File Path\BackUps>del "2015 CSLD Weekly Comment Analysis 2015-10-10 9_11_09 .xlsm" 1>>logfile.txt
Y:\File Path\BackUps>del "2015 CSLD Weekly Comment Analysis 2015-10-10 23_55_29 .xlsm" 1>>logfile.txt
Y:\File Path\BackUps>pause
Press any key to continue . . .

最佳答案

您可以使用以下批处理代码将 stdoutstderr 重定向到日志文件。

@echo off
>>logfile.txt 2>&1 (
echo INFO: Making "\\My Very Long\Exact Directory\" the working directory ...
PUSHD "\\My Very Long\Exact Directory\"
echo INFO: Deleting old *.xlsm files in this directory ...
for /f "skip=7 eol=: delims=" %%F in ('dir /b /o-d *.xlsm') do (
echo INFO: Deleting file "%%F" ...
del "%%F"
)
)

另请参阅 Microsoft TechNet 文章 Using command redirection operators .

>>logfile.txt通过将每个输出到 stdout(标准输出)的文本附加到文件,将 stdout 重定向到日志文件。仅当日志文件不存在时才会创建新文件。

2>&1stderr(标准错误)重定向到 stdout 以最终获得标准消息 - echo 的行命令 - 以及使用的命令输出到日志文件中的错误消息。

关于windows - 批处理文件创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com