顺便说一句,如果另一端从中读取数据,剩余缓冲区会自动增加,对吗? 最佳答案 PeekNamedPipe怎么样??似乎以下将返回要从管道中读取的剩余字节总数。DWORDtotalBytesAvailable;BOOLWINAPIPeekNamedPipe(handle,//__inHANDLEhNamedPipe,NULL,//__out_optLPVOIDlpBuffer,0,//__inDWORDnBufferSize,NULL,//__out_optLPDWORDlpBytesRead,&totalBytesAvailable,
我尝试使用sysinternals中的pipeacl和进程资源管理器。pipeacl给我一个错误,sysinternals似乎不支持命名管道的安全性。 最佳答案 我发现如果ProcessExplorer不支持某个功能,ProcessHacker通常是这样,反之亦然。尚未检查它是否支持命名管道,但值得一试。 关于windows-是否有查看命名管道安全DACL的工具?,我们在StackOverflow上找到一个类似的问题: https://stackoverflo
我正在尝试在WindowsXPSP2+上使用命名管道。管道服务器将是一项服务,作为某种管理员/系统级帐户运行。管道客户端可以是任何用户,可能是访客,也可能是管理员。就我而言,我可以让guest帐户与我以管理员身份运行的服务成功通信。在我开始在客户端代码中使用管道之前,我想验证管道的另一端是否确实由管理员/系统拥有。我发现了GetSecurityInfo函数,我认为我应该能够将其用作解决方案的一部分。但是,我不知道如何从SID到“是管理员”检查。 最佳答案 由管理帐户(包括系统帐户)创建的所有对象的默认所有者是众所周知的管理员组,您不
我正在为命令行可执行文件编写集成测试驱动程序。我同时控制驱动程序和可执行文件,因此我可以保证它们的行为——例如,可执行文件从不从标准输入读取,它只接受命令行参数,执行它的操作,然后将输出写入文件和标准输出。我希望捕获进程的退出代码和标准输出以进行验证。这是我正在使用的代码:#includeclassPipe{HANDLEReadHandle;HANDLEwritehandle;public:Pipe(){SECURITY_ATTRIBUTESsaAttr;saAttr.nLength=sizeof(SECURITY_ATTRIBUTES);saAttr.bInheritHandle=T
我正在尝试创建可以运行此命令的批处理脚本或计划任务:pythonwmanage.pyrunserver>nul如果我从命令提示符下编写它,它将运行,并返回提示符,但如果我尝试使用批处理文件或计划任务运行它,它将打开一个窗口并将自身锁定在该命令中。我将关闭添加最后一个“退出”的窗口,但它将被锁定在第一个命令中,除非我在任务管理器中终止进程。我该怎么做?如果它在普通cmd中工作,为什么在.bat或.cmd文件中不能以同样的方式工作? 最佳答案 好的,经过越来越多的测试后,我发现了一些可行的方法。很抱歉在没有进行更多搜索和测试的情况下提出
我使用下面的批处理文件通过avidemux的cli可执行文件连接视频文件。我将avidemux的大部分输出通过管道传输到00_log.log的原因是它的输出非常冗长,将其写入文本文件似乎会留下更多有用的状态或控制台上显示的严重错误消息。但是,我想看看在弹出任何错误消息时avidemux正在处理什么文件。下面,ECHO之后的所有内容都不会显示在控制台中。注释或删除@echooff只是在批处理作业开始时中继下面的ECHO行,而不是与avidemux的控制台输出一起中继,因此限制了它的使用。@echooff>00_log.log(ECHOJoiningfoo.mp4"C:\ProgramFi
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭5年前。Improvethisquestion我在GitBash中试验管道。我运行“ls||vim”,认为它会打开Vim,并将目录列表的内容写入编辑器。事实并非如此,而是它保存了
我必须使用groovy脚本构建一个jenkins管道作业,该作业要做的是,首先运行一个windows批处理命令,只有当批处理命令构建成功时,它才会为另一个作业调用构建。我怎样才能知道Windows批处理命令是否已成功构建。我正在显示查询的示例代码。importgroovy.json.JsonSlurper;importhudson.model.*importhudson.EnvVarspipeline{agentanystages{stage('Build'){steps{bat'somebatchcommandhere'//if(batbuildsuccessful)--->need
在WindowsPowerShell中,我使用了chcp65001并选择了一种包含我想要的所有字符的字体。如果我使用typefile.u8显示UTF-8文件,它工作正常并且我得到了所需的字符。如果我运行myprogram.exe然后我在第一个非ASCII字符之后没有输出(如果在chcp65001之前运行这个产生mojibake)。如果我运行myprogram.exe>test.u8然后typetest.u8有效,我会得到所需的输出。所以我推断我可以使用myprogram.exe|绕过该文件(使用我有限的PowerShell知识!)%{echo"$_"}并且有效。因此,当C++运行时直接
这里是一个简单的问题(虽然可能不是一个简单的答案):是否可以为程序使用的(现有的)命名管道指定一个路径,就好像它们在普通文件上打开一样?根据thisMSDNpage,可以使用以下路径语法引用本地计算机上的名称管道:\\.\pipe\PipeName,但我无法在标准Windows程序中使用它。顺便提一下,如果有人对与只能以比物理I/O(例如命名管道)更有效的方式使用文件系统的程序进行交互有任何建议,我很乐意采纳它们. 最佳答案 只有当程序使用Win32APICreateFile()函数打开文件时,它才会起作用。