Bir toplu işlemle çalışan konsol uygulamasına giriş yazılırken hata oluştu
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
Sizin config.exe
hiç yönlendirmeyi kabul etmez. Gerçek konsol tamponları gerektirir.
- Otomatikleştirmek istiyorsanız, başka bir konsol uygulaması oluşturabilirsiniz.
- CreateProcessW
config.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.exe
sonlandırmayı bekleyin ve çıkış kodunu geri verin
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