आपके अंतिम प्रश्न का उत्तर है: हां, पावरशेल कोड की सहायता से। यह बैच फ़ाइल आप क्या अनुरोध किया कार्य करें:
@echo off
setlocal
set /A STD_OUTPUT_HANDLE=-11
set /A ENABLE_PROCESSED_OUTPUT=1, ENABLE_WRAP_AT_EOL_OUTPUT=2, ENABLE_VIRTUAL_TERMINAL_PROCESSING=4
PowerShell^
$GetStdHandle = Add-Type 'A' -PassThru -MemberDefinition '^
[DllImport(\"Kernel32.dll\")]^
public static extern IntPtr GetStdHandle(int nStdHandle);^
';^
$GetConsoleMode = Add-Type 'B' -PassThru -MemberDefinition '^
[DllImport(\"Kernel32.dll\")]^
public static extern bool GetConsoleMode(IntPtr hWnd, ref UInt32 lpMode);^
';^
$StdoutHandle = $GetStdHandle::GetStdHandle(%STD_OUTPUT_HANDLE%);^
$ConsoleMode = New-Object -TypeName UInt32;^
$null = $GetConsoleMode::GetConsoleMode($StdoutHandle,[ref]$ConsoleMode);^
Set-Content ConsoleMode.txt $ConsoleMode^
%End PowerShell%
set /P "ConsoleMode=" < ConsoleMode.txt
set /A "AnsiCompatible=ConsoleMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING"
if %AnsiCompatible% neq 0 (
echo The console is Ansi-compatible!
) else (
echo Ansi codes not supported...
)
मैं ऐड-प्रकार cmdlet और जानकारी this question पर स्वीकार किए जाते हैं जवाब में दी गई पर PowerShell मदद पर उदाहरण पढ़ने कोड के इस प्रकार लिखा था।
आपको Windows API को कॉल करने के लिए PowerShell की आवश्यकता है, लेकिन आप बैच से PowerShell को कॉल कर सकते हैं। – SomethingDark
@ SomethingDark, क्या आप पावरहेल से विंडोज एपीआई को कॉल करने के तरीके पर किसी भी अच्छे संसाधन की सिफारिश कर सकते हैं? – jwfearn
ईमानदारी से, एक बार मुझे ऐसा करने की ज़रूरत है, मैं भाग्यशाली था कि केवल खिड़कियों को स्थानांतरित करने और आकार बदलने की आवश्यकता है और मैं मौजूदा कोड ढूंढने में कामयाब रहा जिसकी मुझे ज़रूरत थी, लेकिन यह ऐसा कुछ है: https://blogs.msdn.microsoft.com/mattbie/2010/02/23/how-to-call-net-and-win32-methods-from-powershell-and-your-troubleshooting-packs/ – SomethingDark