совет на будущее - постарайтесь задавать полные, развернутые вопросы (вопрос вы уже отредактировали - хорошо) и давать такие же описания полученных результатов. так вам быстрее помогут. ответ "Compare-Object выводит какую-то белиберду" - это не ответ в технической дискуссии.
какова конечная цель этого всего - узнать конкретные различающиеся участки или выяснить идентичны ли файлы?
если узнать конкретные различающиеся участки, то простого способа делать это повершелом я не нашел.
если выяснить идентичны ли файлы, то в повершеле есть команда вычисляющая SHA256 хеш заданного файла:
((Get-FileHash c:\test\test1.csv).hash) -eq ((Get-FileHash C:\test\test2.csv).hash)
если выдаст False - файлы различаются.
если выдаст True - файлы идентичны.
Спасибо за ответ, прошу прощения за некорректно сформулированный вопрос.
Собственно цель озвучена была в названии изначально, нужно было по-байтное сравнение. Идентичность файлов интересна, но она не дает данных для диагностики ошибок, если файлы разные.
Хотел перейти с bat тестов на ps, но видимо без написания отдельных функций тут не обойтись, так что лучше я все оставлю как есть :-)
Еще раз спасибо за разъяснения.
не за что! =)
в принципе, из повершела можно запускать все, что можно из .бат файлов. в некоторых случаях, правда, понадобится бубен. например:
start-process -FilePath cmd -ArgumentList '/c "fc /b c:\test\test1.txt c:\test\test2.txt"' -NoNewWindow
в окне повершела вы увидите результат сравнения. однако, засунуть вывод фц, запущенной через цмд в повершеловскую переменную для дальнейшего использования не так просто. "проще" было бы сделать так: