我一直在尝试获取控制台的输出句柄,但它似乎不起作用。我用它来设置文本的颜色,但它没有改变。
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut, 0x0A)
Run Code Online (Sandbox Code Playgroud)
我尝试调试它,我认为手柄不正确。还有其他方法可以做到这一点吗?它不起作用是否正常?有修复吗?
谢谢!
编辑:让我澄清一下,我试图获取的句柄无效。我不知道如何解决它。我想我会开始寻找替代方案;也许我的代码有问题。
目标:我想使用批处理文件将具有特定扩展名的最新文件从“源目录”复制到“目标目录”。最新文件可能位于源目录内的多个子目录下。
这个问题/答案/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)。
有任何想法吗?
请参阅:目录文档
我正在编写一个脚本,我想传递这些值,但也想看到它们显示
Get-Content data.txt | Tee-Object | data_processor.exe
Run Code Online (Sandbox Code Playgroud)
但Tee-Object总是请求一个文件,我只想在屏幕上看到它。
在Windows中运行wxPython程序时如何摆脱显示为标准输出的控制台?
我想要的功能,rmdir /s但我需要保留指定的目录.rmdir /s除了指定的目录外,还删除所有文件和子目录.
我也尝试过使用del /s但是我在指定目录中留下了空文件夹.我也需要删除这些文件夹.
有关如何做到这一点的任何指导?
我有一个命令行语句,当手动将其键入控制台时,它可以正常工作,但是,当我将它放入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文件.
我正在尝试使用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程序运行,我可以读取管道的输出.仍然没有窗口.
我正在调试debug和colors.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) 我有一个带有GUI的脚本,它接收用户数据并将其存储到文本文件中.它运行另一个脚本(.exe),等待用户输入然后执行一些操作.我想要的是后一个脚本在读取用户输入后隐藏其控制台窗口,但继续在后台工作.
我尝试用subprocess.call('lastscript.exe', shell=True)或运行该脚本subprocess.Popen('lastscript.exe', shell=True).这不起作用.我不得不采取从用户输入的第一个,然后隐藏控制台,让在后台的工作方案.
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-console ×10
windows ×5
batch-file ×4
cmd ×2
console ×2
python ×2
c++ ×1
colors ×1
command ×1
ffmpeg ×1
node.js ×1
powershell ×1
python-3.4 ×1
tee ×1
terminal ×1
winapi ×1
wxpython ×1