最後の質問に対する答えは、はい、PowerShellコードを使用しています。このバッチファイルは、あなたが要求したものを実行します。
@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...
)
は私が追加-Typeコマンドレットとthis questionで受け入れ答えで与えられた情報にPowerShellのヘルプで例を読むこの種のコードを書きました。
Windows APIを呼び出すにはPowerShellが必要ですが、バッチからPowerShellを呼び出すことはできます。 – SomethingDark
@SomethingDark PowershellからWindows APIを呼び出す方法については、どんな良いリソースをお勧めしますか?ます。https:/ – jwfearn
は正直なところ、私が今までそれを行うために必要なてきた1時間は、私が唯一のウィンドウを移動し、サイズを変更する必要があると私は私が必要な正確に何をした既存のコードを見つけることができたが、それはこのようなものだとは十分に幸運でした/blogs.msdn.microsoft.com/mattbie/2010/02/23/how-to-call-net-and-win32-methods-from-powershell-and-your-troubleshooting-packs/ – SomethingDark