Bir toplu işlemle çalışan konsol uygulamasına giriş yazılırken hata oluştu

Aug 19 2020

Bir toplu iş dosyasıyla yürütmek istediğim bir exe dosyam var.

Exe dosyası, üç kez giriş isteyecek bir üçüncü taraf konsol uygulamasıdır.

Bu yüzden boş bir satırla doldurmak istiyorum, biraz Metin ve biraz Diğer Metin

(echo. echo someText echo someOtherText) | call config.exe remove

Ama şu hatayı alıyorum:

Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.

Sorun ne olabilir, lütfen en azından aranacak yönü bildiriniz.

Aşağıdaki gibi daha basit bir komutu yürütmeye çalışsam bile aynı hatayı alıyorum:

echo. | call config.exe remove

Yanıtlar

1 Maximus Aug 27 2020 at 08:53

Sizin config.exehiç yönlendirmeyi kabul etmez. Gerçek konsol tamponları gerektirir.

  1. Otomatikleştirmek istiyorsanız, başka bir konsol uygulaması oluşturabilirsiniz.
  • CreateProcessWconfig.exe kullanmaya başlayın
  • için satırları yazmak STD_INPUT_HANDLE kullanarak WriteFile (ASCII, \nçizgiler ayrılmış) veya WriteConsoleInputW (eğer unicode karakterleri gerekirse)
  • yazma tamamlandıktan sonra, config.exesonlandırmayı bekleyin ve çıkış kodunu geri verin
  1. Diğer bir basit seçenek ise ConEmu terminalidir (yazar benim). Orada GuiMacro betik kolayca konsoldan kullanılabilir. Böylece, komut isteminizden çalıştırabilir veya toplu iş dosyasında sarmalayabilirsiniz (ConEmu'da çalıştırın):

    ConEmuC.exe -GuiMacro print "\ nsomeText \ nbazı Diğer Metin \ n" & config.exe kaldır