【发布时间】:2016-03-16 18:33:21
【问题描述】:
我有一个批处理文件(.cmd 文件),每行包含数百万个重命名命令。每一行都是来自数据库的 UNC 路径,具有基于表中列出的扩展名的新名称。无论如何,我知道如果我添加 2>&1 那么我可以获得标准错误和标准输出,因此,我可以识别哪些文件不存在于存储中。但是由于有数百万个文件,我希望我们只在未找到特定文件的情况下才将 stdout 和 stderr 一起记录。换句话说,仅在运行命令时出现错误时记录。我在 Windows 7 上运行它。
REN \\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\84 84.TIF
REN \\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\85 85.TIF
REN \\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\86 86.TIF
REN \\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\87 87.TIF
REN \\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\88 88.TIF
假设如果存储中不存在文件 88.TIF,那么我将收到一条错误消息: "任\nas0i08lv\DATA\HPFArchive\app_hpf\fcfs_data\HPF01\Arch048\17\88 88.TIF 系统找不到指定的文件。”
由于每个批处理文件中可能有数百万条命令行,我只需要使用上面示例错误中所示的命令记录我看到错误的那些。
【问题讨论】:
-
您应该提供示例和代码片段...
标签: batch-file command-line stdout stderr file-rename