У меня есть небольшое консольное приложение, написанное на C # для .NET 4.0. Приложение принимает 2 параметра: «-run» или «-clr». Таким образом, он будет вызываться через командную строку следующим образом
MyConsoleApp.exe -run
Я тестировал это приложение в Windows 8.1 (несколько машин), Server 2012, Windows 7 и 7 SP1. Я тестировал его на этих машинах как администратор и как обычный пользователь без повышенных разрешений. Он работает во всех этих ситуациях.
У меня есть клиент, который запускает его на Windows 7 SP1, и когда они запускают его через командную строку, он не распознает параметры. Если они запускают его через запланированное задание, оно работает.
Странная часть заключается в том, что параметр читается, потому что приложение напечатает ошибку в командном окне, указывающую на неверный параметр. Например
MyConsoleApp.exe -abc
Выведет
Invalid switch/value found [-abc]. Program has stopped.
Когда клиент запускает первую команду, которую я упомянул с параметром «-run», он получает
Invalid switch/value found [-run]. Program has stopped.
Они предоставили снимок экрана с командным окном после попытки его запустить, и они все набирают правильно. Приложение действительно работает правильно, если они запускают его через запланированную задачу, вводя параметр «-run» в поле «Добавить аргументы» при настройке действия.
Сначала я отправил вопрос как вопрос по программированию здесь https://stackoverflow.com/questions/29109764/net-console-app-args-not-matching-case но поскольку он работает во всех моих тестовых средах, и когда клиент использует его в запланированной задаче, похоже, что в коде что-то не так.
Кто-нибудь знает, почему он может не работать в командной строке, но работает в запланированной задаче? Я думал, что это может иметь какое-то отношение к настройкам окна командной строки, но все настройки зависят от внешнего вида окна. Возможно ли, чтобы стороннее приложение (возможно, антивирус или что-то еще) помешало этому работать должным образом?
РЕДАКТИРОВАТЬ: Клиент обязательно вводит параметр в нижнем регистре. Я подтвердил это скриншотом, который они предоставили.