首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包中的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。...但是,实际情况并不是我们想的那么简单。比如我文前提到的问题:别人提供了一个Console控制台程序,我们将如何获取其执行的输出结果呢?...这个API的参数非常多,我想我们工程中对CreateProcess的调用可能就关注于程序路径(lpApplicationName),或者命令行(lpCommandLine)。...这三个参数似乎就点中了标题中的两个关键字“标准输出”、“标准错误输出”。是的!我们正是靠这几个参数来解决我们所遇到的问题。那么如何使用这些参数呢?         我们选用的还是老方法——管道。...,所以我段代码动态申请了一段内存,并根据实际读取出来的结果动态调整这块内存的大小。

3.9K10

sqlcmd命令执行大的SQL脚本

前言 这两天从服务器导出一个150多MB的脚本文件,导入到我本地的SQLServer数据库中时,直接打开执行提示内存不足的错误,于是google搜索发现微软针对此类情况有不少命令行工具,其中有一款sqlcmd...通常以下列方式使用 sqlcmd 实用工具 用户输入 Transact-SQL 语句,输入方式与在命令提示符下输入的方式类似。 结果将显示在命令提示符处。...用户通过下列方式提交 sqlcmd 作业:指定要执行的单个 Transact-SQL 语句,或将实用工具指向要执行的 Transact-SQL 语句所在的文本文件。...输出通常定向到一个文本文件,但也可能在命令提示符处显示。 查询编辑器中的 SQLCMD 模式 SQL Server Management Studio 。...输入选项(-Q、-q 和 -i),用于标识 sqlcmd 输入的位置 。 输出选项 (-o),用于指定 sqlcmd 输出所在的文件 。

3.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL Server 代理进阶 - Level 2 :作业步骤和子系统

    如第1级中所述,默认情况下,所有者将是创建作业的用户(在Transact-SQL中,通过sp_add_job系统存储过程或使用SQL Server Management Studio)。...由于这是Transact-SQL作业步骤类型,因此可以将Transact-SQL命令的任何输出记录到输出文件(就像sqlcmd中的-o选项一样)。...您也可以将结果记录到一个表(MSDB中的sysjobstepslogs表)。 单击确定,然后单击新建以向作业添加第二步。 假定步骤1没有产生错误,则下一步作业将备份主数据库。...它允许您针对SQL Server代理所附属的SQL Server本地实例运行Transact-SQL(但不包括对Transact-SQL的sqlcmd扩展)。...在这个阶段的下一个步骤中,我将研究代理功能以增强作业步骤的安全性,以及Analysis Services的其他SQL代理子系统。 ----

    1.3K40

    基于sqlcmd命令行工具管理SQL server

    在SQLServer数据库当中,除了大家熟知的基于SSMS来管理SQLserver数据库之外,还有一个很强大的命令行工具sqlcmd。...本文描述了sqlcmd的一些常规用法以及给出如何通过批处理方式执行脚本的示例。 一、获取sqlcmd帮助 C:\>sqlcmd -?...输入选项(-Q、-q 和 -i),用于标识 sqlcmd 输入的位置。 输出选项 (-o),用于指定 sqlcmd 输出所在的文件。...三、常见用法 使用 Windows 身份验证连接到默认实例,以交互方式运行 Transact-SQL 语句: sqlcmd -S 上述示例中,未指定 -E...sqlcmd -q "SELECT * FROM AdventureWorks2012.Person.Person" 使用 Windows 身份验证连接到本地计算机上的默认实例,执行查询,将输出定向到某个文件

    2.4K50

    使用Python操作SQL Server数据库

    如果有条件可以使用远程连接或者TeamViewer等工具,操作带GUI的数据库管理器,实施起来可以很省心。可以直接查看结果,模板化查询甚至提示语句错误等。...若要提高性能,请在一个 sqlcmd 会话中执行尽可能多的操作,而不是在一系列会话中来执行这些操作。...代码页转换规则: 如果未指定代码页, sqlcmd 会将当前代码页同时用于输入文件和输出文件,除非输入文件为 Unicode 文件,在此情况下无需进行转换。...sqlcmd 将首先检查所有指定的文件是否都存在。如果有一个或多个文件不存在, sqlcmd 将退出。-i 和 -Q/-q 选项是互斥的。...如果不提交,可以即便语句执行了,也没有结果返回。此外,连接一开始设定了自动提交属性,可以忽略这条。 文章转载于马哥教育官网!

    1.7K20

    sql server 2008 基础知识

    4.Sqlcmd工具   sqlcmd通过OLE DB与服务器进行通信,使用sqlcmd工具可以在命令提示符窗口中输入T-SQL语句,调用系统过程和脚本文件。   ...T-SQL脚本文件是一个文本文件,可以包含T-SQL语句、sqlcmd命令以及脚本变量的组合。...master数据库始终有一个可用的最新的master数据库备份。 2. tempdb数据库 tempdb数据库是一个临时数据库,用于保存临时对象或中间结果集,满足临时存储要求。...如果修改model数据库,之后创建的所有数据库都将继承这些修改,即model数据库中的所有用户定义的对象都将复制到所有新创建的数据库中。...4. msdb数据库 msdb数据库供   SQL   Server   代理程序调度警报和作业以及记录操作员时使用。  三、数据库的组成 1.

    1.5K50

    Mysql中使用流式查询避免数据量过大导致OOM

    一、前言 java 中MySQL JDBC 封装了流式查询操作,通过设置几个参数,就可以避免一次返回数据过大导致 OOM。...二、如何使用 2.1 之前查询 public void selectData(String sqlCmd) throws SQLException { validate(sqlCmd);...三、 结果对比 对于同一个sqlCmd,同一批数据,使用两种方式占用内存对比如下: 非流式编程 ? image.png 流式编程 ?...image.png 另外非流式方式由于是把符合条件的数据一下子全部加在到内存,并且由于数据量比较大,需要mysql处理的时间比较长,我测试情况下需要一分钟才会返回结果到内存(数据量比较大),然后才能通过数据集返回数据...而流式方式是每次返回一个记录到内存,所以占用内存开销比较小,并且调用后会马上可以访问数据集的数据。

    1.6K20

    操作系统的发展

    1.2 缺点 人工操作方式仅当程序运行完毕并取走计算结果后,才允许下一个用户上级,它具有以下两方面的缺点: 用户独占全机,即一台计算机的全部资源由上机用户所独占。 CPU等待人工操作。...在脱机I/O过程中,程序和数据的输入和输出都是在外围机的控制下,即脱离主机的情况下完成的。...1.3 缺点 系统中的资源得不到充分的利用。 单道批处理系统的内存中仅有一道程序,每逢该程序在运行中发出 I/O 请求后,CPU便处于等待状态,必须在其 I/O 完成后才继续运行。...它与多道批处理系统之间的不同具体在了以下几个用户需求方面: 人机交互 共享主机 便于用户上机 分时系统的最关键问题是如何使用户能与自己的作业进行交互,即当用户在终端输入相关指令的时候,系统能够及时接收并处理该命令...交互性 系统中的多个用户可以彼此独立地进行操作。 及时性 用户请求能在很短的时间内获得响应。 2.

    41110

    将 Docker 镜像安全扫描,添加到 CICD 管道

    这样,我们可以在使用镜像之前知道其包含哪些漏洞,因此我们只能在生产中使用“安全”镜像。 有多种分析Docker镜像的方法(取决于您使用的工具)。...如您在扫描作业的结果中看到的,我们有多个漏洞,更确切地说是114个“低”和8个“中”,24个“高”和1个“严重”漏洞。 我们希望获得有关这些漏洞的更多详细信息。...默认情况下,Trivy在标准输出中打印报告。在此示例中,我们告诉trivy将报告输出到文件中,并根据该文件创建了作业工件。...好的,现在我们已经将镜像扫描集成到CI / CD管道中,现在的问题是如何处理这些信息? 当前,安全扫描作业永远不会失败,因为trivy命令默认情况下返回0。...结论 因此,我们已经看到了如何将安全扫描作业集成到GitlabCI管道中,这非常简单(至少使用Trivy)。当然,在我的示例中,我在单个master分支中完成了所有操作。

    2.5K20

    将Docker镜像安全扫描步骤添加到CICD管道

    这样,我们可以在使用镜像之前知道其包含哪些漏洞,因此我们只能在生产中使用“安全”镜像。 有多种分析Docker镜像的方法(取决于您使用的工具)。...如您在扫描作业的结果中看到的,我们有多个漏洞,更确切地说是114个“低”和8个“中”,24个“高”和1个“严重”漏洞。 我们希望获得有关这些漏洞的更多详细信息。...默认情况下,Trivy在标准输出中打印报告。在此示例中,我们告诉trivy将报告输出到文件中,并根据该文件创建了作业工件。...好的,现在我们已经将镜像扫描集成到CI / CD管道中,现在的问题是如何处理这些信息? 当前,安全扫描作业永远不会失败,因为trivy命令默认情况下返回0。...结论 因此,我们已经看到了如何将安全扫描作业集成到GitlabCI管道中,这非常简单(至少使用Trivy)。当然,在我的示例中,我在单个master分支中完成了所有操作。

    1.7K20

    Docker最全教程——数据库容器化(十一)

    数据库容器化绝不是一个伪命题,数据库容器化是值得我们来探索的一个方向,而且应是一种必然的趋势。在本篇中,我们不做过多探讨。 ? 接下来,笔者将逐步和大家分享如何将主流的数据库托管到容器之中。...在此示例中,SQL Server 侦听容器中的 TCP 1433 并公开的端口 1433,在主机上。 --name sql1 为容器指定一个自定义名称,而不是使用随机生成的名称。...· 备份和还原数据库 · 生成和执行 T-SQL 查询和脚本,并查看结果 · 生成数据库对象的 T-SQL 脚本 · 查看和编辑数据库中的数据 · 以可视方式设计 T-SQL 查询和数据库对象,如视图...登录 输入数据库服务器上具有访问权限的用户的名称 (例如,默认值SA安装过程中创建的帐户)。 密码 指定的用户输入的密码 (对于SA帐户,则此安装过程中创建)。...注意:只有输入GO才会立即执行之前的命令。 ? 执行结果如上图所示。我们通过SSMS可以查看到我们刚才创建的数据库: ?

    2.2K40

    Docker最全教程——数据库容器化(十)

    数据库容器化绝不是一个伪命题,数据库容器化是值得我们来探索的一个方向,而且应是一种必然的趋势。在本篇中,我们不做过多探讨。 ? 接下来,笔者将逐步和大家分享如何将主流的数据库托管到容器之中。...在此示例中,SQL Server 侦听容器中的 TCP 1433 并公开的端口 1433,在主机上。 --name sql1 为容器指定一个自定义名称,而不是使用随机生成的名称。 ...· 备份和还原数据库 · 生成和执行 T-SQL 查询和脚本,并查看结果 · 生成数据库对象的 T-SQL 脚本 · 查看和编辑数据库中的数据 · 以可视方式设计 T-SQL 查询和数据库对象,如视图...登录 输入数据库服务器上具有访问权限的用户的名称 (例如,默认值SA安装过程中创建的帐户)。 密码 指定的用户输入的密码 (对于SA帐户,则此安装过程中创建)。...注意:只有输入GO才会立即执行之前的命令。 ? 执行结果如上图所示。我们通过SSMS可以查看到我们刚才创建的数据库: ? ?

    2.9K20

    MapReduce工作流程最详细解释

    那么Mapper是如何确定一个HDFS文件中的block存放哪几台电脑,有什么数据? inputFormat它实际上是个 interface, 需要 类 来继承,提供分割 input 的逻辑。...Mapper JobClient运行后获得所需的配置文件和客户端计算所得的输入划分信息。并将这些信息都存放在JobTracker专门为该作业创建的文件夹中。文件夹名为该作业的Job ID。...在map中,每个 map 函数会输出一组 key/value对, Shuffle 阶段需要从所有 map主机上把相同的 key 的 key value对组合在一起,(也就是这里省去的Combiner阶段...每轮过后产生一个结果,然后再对结果排序。最后一轮就不用产生排序结果了,而是直接向 reduce 提供输入。这时,用户提供的 reduce函数 就可以被调用了。...同时reduce任务并不是在map任务完全结束后才开始的,Map 任务有可能在不同时间结束,所以 reduce 任务没必要等所有 map任务 都结束才开始。

    69760

    【操作系统】详谈操作系统的发展历程

    : 通过人工将对应用程序和数据的已穿孔的纸带(或者卡片)装入输入机,然后启动输入机,把程序和数据输入计算机的内存,接着通过控制台开关启动程序针对数据运行; 计算完毕后,打印机输出计算结果; 用户取走结果并卸下纸袋...(或卡片)后,才让下一个用户上机 在使用计算机的整个过程中都需要人工干预,如程序的装入、运行、结果的输出等。...2.1 单道批处理系统 人们通过引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。 在单道批处理系统中,系统对作业的处理是成批进行的,但内存中始终保持一道作业。...因此实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接受并及时处理该命令,再将结果返回用户。...系统中多个用户之间可以相互独立操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。 及时性。用户请求能在很短时间内获得响应。

    28410

    Hadoop作业引用第三方jar文件

    有RunJar执行WordCount后, 就进入我们的程序了, 需要配置mapper, reducer以及输出输出路径等等, 最终通过执行job.waitForCompletion(true)向JobTracker...JobTracker和TaskTracker如何获得第三方jar文件? 有时候提交job之后, 在map或者reduce函数中也会产生ClassNotFoundException....这是因为map或reduce可能在其他机器上执行, 那些机器没有需要的jar文件, mapreduce作业交由JobTracker和TaskTracker执行, 两者如何获得第三方jar文件呢?...通过Job类提交作业, 获得一个作业号, 并根据conf决定作业时提交给LocalJobRunner还是JobTracker step 3. copy job resource client将作业所需资源上传到...上传到hdfs上, 然后将路径加入到分布式缓存中; 第三方jar文件和自己的程序打包到一个jar文件中, 程序通过job.getJar()将获得整个文件并将其传至hdfs上.

    94620

    Lambda架构的质疑

    但这没有理由证明这是对的,流处理中的底层抽象是数据流 DAG,它与传统数据仓库中的底层抽象完全相同。流处理只是此数据流模型的一般化形式,暴露中间结果的检查点以及可以向用户连续输出结果。...当第二个作业完成后,切换应用程序从这个新表中读取。 停止老版本的作业,然后删除旧的输出表。 这种架构看起来像这样: ?...与 Lambda 架构不同,这种方法我们仅在代码更改时才进行重处理,也就是我们需要重新计算结果的时候。当然,进行重新计算的作业只是对相同代码的改进版本,在相同框架上运行,并采用相同的输入数据。...对于流处理作业的输出以及中间流,对于使用 Hadoop 中的 Hive 等工具进行分析非常有用。 我们已经文档记录了此方法的实现以及使用 Samza 的重新处理架构。 6....两种方法在效率和资源权衡上有一定程度的不同。Lambda 架构需要一直运行重处理和实时处理,而我提出的建议仅在需要重处理时才运行作业的一个副本。

    2.1K20

    收藏一下,虽然很多东西还没接触到

    用户在终端上可以直接输入、调试和运行自己的程序,能及时修改程序中的错误且直接获得结果。...执行过程中的信息访问也不必启动输入机,只要直接从磁盘上读既可。作业产生的结果暂时存放在磁盘上,直到作业完成后才把作业结果从打印机上输出。...虚拟设备的实现技术——SPOOL系统 1)输入井和输出井 井是为了实现虚拟设备在硬盘上划出的专用存储空间,其中输入井中存放作业的初始信息,输出井中存放作业的执行结果。...6)缓输出程序——负责查看输出井中是否有待输出的结果信息,如果有,则启动打印机把作业的结果文件打印输出。...缓输出表——对每个作业设置一张缓输出表,用来 登记该作业产生的结果文件。

    71920

    在 PowerShell 中使用 SQ

    正在开始安装的“安装”阶段。 查看日志文件的内容以获得 C:\sql2008\Microsoft.SqlServer.Management.PSProvider.dll 程序集的进度。...查看日志文件的内容以获得 C:\sql2008\Microsoft.SqlServer.Management.PSProvider.dll 程序集的进度。...查看日志文件的内容以获得 C:\sql2008\Microsoft.SqlServer.Management.PSSnapins.dll 程序集的进度。...实现的功能:每隔15分钟访问一次远程的192.168.159.130 服务器上的 SQL Server 默认实例。然后将访问的结果输出到一个文本文件monitor.txt 中。...在“新建任务”对话窗口点“确定”,这时候会要求输入运行该任务的帐号所对应的密码。  ? 4、验证计划任务   在“活动任务”列表中检查刚才创建的任务。  ?

    93310
    领券