将CMD日志保存到文件

时间:2018-12-11 16:54:32

标签: batch-file cmd pipe

是否有任何方法可以在会话结束时将command.exe或powershell的所有控制台输出保存到文件中,而不是通过管道传输每个单独的输出?

我正在尝试保存从批处理脚本运行的应用程序的输出,该脚本在重定向时崩溃,但在打印到终端时可以正常工作。

没关系;所有输出打印到控制台:

func isRestricted(at url: URL) throws -> Bool {
    let flags: UInt32 = try url.withUnsafeFileSystemRepresentation { fsRep in
        var info = stat()

        if stat(fsRep, &info) != 0 {
            guard let code = POSIXError.Code(rawValue: errno) else {
                throw CocoaError(.fileReadUnknown)
            }

            throw POSIXError(code)
        }

        return info.st_flags
    }

    return flags & UInt32(bitPattern: SF_RESTRICTED) != 0
}

以下所有内容均不产生输出;程序在1-2秒后返回,而不是15-20秒;

C:\TestPlatform\executables> TestApp.exe -c off -d file -q otp 47f64

1 个答案:

答案 0 :(得分:2)

我无法重现,但是重定向可能对您的exe不起作用,因为最后一个开关之后的所有文本都被认为是该开关的arg,因此exe会消耗行中的所有内容直到最后一个字符-这将还说明为什么它不能正常运行。
尝试使用以下替代方法登录cmd:

C:\TestPlatform\executables>> logFile.txt 2>&1 TestApp.exe -c off -d file -q otp 47f64

请在提示后记下重定向字符。