Просто одинарные кавычки ваш аргумент:
git diff -- '!(file.txt)'
Одиночные кавычки заставляют PowerShell обрабатывать строку буквально и не позволяют интерпретировать символы.такие как (
в качестве собственных метасимволов.
Перед вызовом целевой программы PowerShell повторно цитирует аргументы, если и при необходимости , за кулисами;то есть:
Он содержит аргумент в "..."
, если он содержит пробелы, а также в некоторых, менее распространенных сценариях (см. ссылку ниже).
Он передает его без кавычек в противном случае.
Примечание: с этим невидимым повторным цитированием связаны подводные камни - см. этот ответ .