Windows fc игнорирует вывод, когда нет разницы
Я использую FC filename1 filename2 >> myLog.txt
(где myLog.txt существует) команда под Windows, чтобы сравнить два файла. Я использую команду в цикле, чтобы я мог сравнить много пар файлов.
Я хочу игнорировать вывод, когда FC
выходы:
Comparing files filename and filename2
FC: no differences encountered
Потому что он заполняет выходной файл нежелательной информацией.
Как я могу это сделать? И, если возможно, могу ли я посчитать количество "успешных"(то, что выходные данные я игнорирую) сравнивает?
Я пробовал с FC filename1 filename2 2> myLog.txt
перенаправлять только поток ошибок, но он ничего не выводит, то есть команда выводит только в стандартный поток.
2 ответа
Вы не указали, как вы "используете команду в цикле, чтобы я мог сравнить множество пар файлов" (как вы получаете второй файл каждой пары в цикле?), Поэтому вы должны соответствующим образом изменить приведенный ниже код.
@echo off
setlocal
set successfull=0
(for %%a in (filename1*.txt) do (
FC "%%a" "%%~Na2.txt" > diffs.tmp
if errorlevel 1 (
type diffs.tmp
) else (
set /A successfull+=1
)
)) > C:\other\folder\myLog.txt
del diffs.tmp
echo Successfull compares: %successfull%
Если myLog.txt
файл должен расти при каждом запуске этой программы, а затем просто изменить >
перенаправление >>
добавить один...
Достаточно просто сделать это, передавая выходные данные FC в FIND /V или FINDSTR /V. Проверьте справку по этим командам. Если у вас есть дополнительные вопросы, пожалуйста, оставьте свой код.