标签: windows-console

无法获取 AllocConsole 的 STD 句柄

我一直在尝试获取控制台的输出句柄,但它似乎不起作用。我用它来设置文本的颜色,但它没有改变。

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut, 0x0A)
Run Code Online (Sandbox Code Playgroud)

我尝试调试它,我认为手柄不正确。还有其他方法可以做到这一点吗?它不起作用是否正常?有修复吗?

谢谢!

编辑:让我澄清一下,我试图获取的句柄无效。我不知道如何解决它。我想我会开始寻找替代方案;也许我的代码有问题。

c++ windows-console

4
推荐指数
1
解决办法
1850
查看次数

Windows“dir”命令:指定“/s”时按日期对文件进行排序

目标:我想使用批处理文件将具有特定扩展名的最新文件从“源目录”复制到“目标目录”。最新文件可能位于源目录内的多个子目录下。

这个问题/答案/s正是我想要的,但是指定选项时它似乎没有排序(正如此评论所建议的那样):

FOR /F "delims=|" %%I IN ('DIR "K:\path\tp\source\dir\*.ext" /B /S /O:D') DO SET NewestFile=%%I
copy "%NewestFile%" "C:\path\to\destination\dir"
Run Code Online (Sandbox Code Playgroud)

你可以DIR "K:\path\tp\source\dir\*.ext" /B /S /O:D自己测试一下,看是否没有排序。

我尝试过的:这个命令本身确实有效:DIR "K:\path\tp\source\dir\*.ext" /S /B | sort但我不知道如何在 for 循环中使用它(批处理文件在我确定错误之前就退出了 - 即使最后有 a pause)。

有任何想法吗?

请参阅:目录文档

windows cmd batch-file windows-console

4
推荐指数
1
解决办法
4万
查看次数

您可以将 Tee-Object 重定向到标准输出吗?

我正在编写一个脚本,我想传递这些值,但也想看到它们显示

Get-Content data.txt | Tee-Object | data_processor.exe
Run Code Online (Sandbox Code Playgroud)

Tee-Object总是请求一个文件,我只想在屏幕上看到它。

terminal powershell tee windows-console

4
推荐指数
2
解决办法
1634
查看次数

3
推荐指数
3
解决办法
5291
查看次数

使用"rmdir"功能但保留指定的目录

我想要的功能,rmdir /s但我需要保留指定的目录.rmdir /s除了指定的目录外,还删除所有文件和子目录.

我也尝试过使用del /s但是我在指定目录中留下了空文件夹.我也需要删除这些文件夹.

有关如何做到这一点的任何指导?

cmd batch-file windows-console

3
推荐指数
1
解决办法
5873
查看次数

Windows控制台 - BAT兼容性

我有一个命令行语句,当手动将其键入控制台时,它可以正常工作,但是,当我将它放入bat文件时,它不起作用.

for %f in (*.flac) do ffmpeg -i "%f" -acodec alac "%~nf.m4a"
Run Code Online (Sandbox Code Playgroud)

这是我尝试运行bat文件时的错误消息

The following usage of the path operator in batch-parameter
substitution is invalid: %~nf.m4a"
Run Code Online (Sandbox Code Playgroud)

有没有什么办法解决这一问题?该语句使用程序ffmpeg将flac文件转换为alac文件.

windows ffmpeg batch-file command-prompt windows-console

3
推荐指数
1
解决办法
1833
查看次数

CreateProcess不会在Windows 7下创建其他控制台窗口?

我正在尝试使用CreateProcess(...)运行一个进程,并在一个单独的控制台窗口中独立运行它.

我可以使用系统("...")函数实现这一点,但我更喜欢CreateProcess,因为它让我可以指定环境和工作目录,获取进程的句柄,以及在需要时管道stdin/out至.

我在互联网上找到的只是反问题,即人们有额外的控制台窗口,想要摆脱它们!在早期版本的Windows中打开并显示新的控制台窗口似乎是正常的行为?

现在,即使我运行"cmd.exe/c ...",我也无法获得额外的窗口.

我尝试使用STARTF_USESHOWWINDOW标志没有运气.

有谁有这个问题?

PS:例如,GUI窗口显示.notepad.exe将正常显示.

这是我的代码(实质上)

PROCESS_INFORMATION processInfo;
STARTUPINFOA startupInfo;
ZeroMemory(&startupInfo,sizeof(startupInfo));
startupInfo.dwFlags |= CREATE_NEW_CONSOLE;
startupInfo.dwFlags |= DETACHED_PROCESS;
ok&=CreateProcessA( NULL,
    const_cast<char*>(comand.c_str()), // safe for CreateProcessA
    NULL, NULL, TRUE, NULL, NULL, NULL,
    &startupInfo, &processInfo);
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行C:/Windows/system32/cmd.exe/c help程序运行,我可以读取管道的输出.仍然没有窗口.

winapi createprocess windows-console

3
推荐指数
1
解决办法
7499
查看次数

什么是\ u001b [9 ...选择控制台上出现的彩色文字的语法,如何添加更多颜色?

我正在调试debugcolors.js以获得比有限的4-6种颜色更多的颜色,但我仍然坚持要弄清楚这种着色语法

args[0] = ' \u001b[9' + c + 'm' + name + ' '
  + '\u001b[3' + c + 'm\u001b[90m'
  + args[0] + '\u001b[3' + c + 'm'
  + ' +' + exports.humanize(ms) + '\u001b[0m';
Run Code Online (Sandbox Code Playgroud)
'blue' : ['\x1B[34m', '\x1B[39m'],
'cyan' : ['\x1B[36m', '\x1B[39m'],
'green' : ['\x1B[32m', '\x1B[39m'],
'magenta' : ['\x1B[35m', '\x1B[39m'],
'red' : ['\x1B[31m', '\x1B[39m'],
'yellow' : ['\x1B[33m', '\x1B[39m'],
Run Code Online (Sandbox Code Playgroud)

我知道Windows控制台允许的颜色比这六个更多,如图color /?所示

0 = Black       8 = Gray
1 = Blue        9 = Light Blue …
Run Code Online (Sandbox Code Playgroud)

console colors windows-console node.js

3
推荐指数
1
解决办法
2921
查看次数

读取输入后隐藏控制台窗口

我有一个带有GUI的脚本,它接收用户数据并将其存储到文本文件中.它运行另一个脚本(.exe),等待用户输入然后执行一些操作.我想要的是后一个脚本在读取用户输入后隐藏其控制台窗口,但继续在后台工作.

我尝试用subprocess.call('lastscript.exe', shell=True)或运行该脚本subprocess.Popen('lastscript.exe', shell=True).这不起作用.我不得不采取从用户输入的第一个,然后隐藏控制台,让在后台的工作方案.

python windows windows-console python-3.4

3
推荐指数
1
解决办法
778
查看次数

Windows cmd删除每个bin和obj文件夹

I'm trying to write a windows script that will remove every bin and obj folder in my project folder. It just doesn't work..

I found this:

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"

so I've tried:

for /d /r . %d in (bin) do @if exist "%d" rd /s/q "%d"
Run Code Online (Sandbox Code Playgroud)

but it didn't work. The closest I've been is:

FOR /D %%p IN ("C:\temp\test\*.*") DO rmdir "bin" /s /q
Run Code Online (Sandbox Code Playgroud)

it removes bin …

windows command batch-file batch-processing windows-console

3
推荐指数
1
解决办法
940
查看次数