gpt4 book ai didi

command-line - 将批处理文件结果打印到文本文件

转载 作者:行者123 更新时间:2023-12-03 13:16:44 25 4
gpt4 key购买 nike

我创建了一个简单的批处理文件来重组一组文件/文件夹。它可以正常工作,但是我需要将结果打印到日志文件中。我需要输出每个操作的结果(创建目录,移动文件,重命名/删除文件)。当我使用命令>> results.txt时,我所能获得的只是“移动了1个文件”。很多次。这是代码:

FOR %%a IN (C:\scans\*.txt) DO CALL :read %%~na
TREE /f >> tree.txt
@GOTO :EOF

:read
@set FILE=%1
FOR /f "tokens=1,2" %%b IN (%FILE%.txt) DO CALL :makeDir %%b %%c
@GOTO :EOF

:makeDir
@set ACCOUNT=%1
@set CHECK=%2
mkdir %ACCOUNT%
CALL :move
@GOTO :EOF

:move
MOVE %FILE%.gif %ACCOUNT%
REN %ACCOUNT%\%FILE%.gif %CHECK%.gif
DEL %FILE%.txt
@GOTO :EOF


每当执行操作时,如何打印到日志文件(results.txt)?

编辑:新代码瓦特/回声:

@echo off
FOR %%a IN (C:\scans\*.txt) DO CALL :read %%~na
TREE /f >> tree.txt
@GOTO :EOF

:read
@set FILE=%1
FOR /f "tokens=1,2" %%b IN (%FILE%.txt) DO CALL :makeDir %%b %%c
@GOTO :EOF

:makeDir
@set ACCOUNT=%1
@set CHECK=%2
mkdir %ACCOUNT%
@echo Made directory for %ACCOUNT% >> results.txt
CALL :move
@GOTO :EOF

:move
MOVE %FILE%.gif %ACCOUNT%
@echo %FILE% moved to %ACCOUNT%
REN %ACCOUNT%\%FILE%.gif %CHECK%.gif
@echo %ACCOUNT%\%FILE% renamed %CHECK% >> results.txt
DEL %FILE%.txt
@echo %FILE% deleted. >> results.txt
@GOTO :EOF

最佳答案

您可以将这段代码添加到批处理文件的顶部:

@Echo off
SET LOGFILE=MyLogFile.log
call :Logit >> %LOGFILE%
exit /b 0

:Logit
:: The rest of your code
:: ....


它基本上将 :Logit方法的输出重定向到 LOGFILEexit命令用于确保在执行 :Logit之后批处理退出。

关于command-line - 将批处理文件结果打印到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757525/

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