jjzjj

c++在后台运行system(),目录路径中有空格,+输出到文本文件

coder 2024-06-10 原文

我正在尝试使用一系列选项运行 tshark exe 并输出到一个 fil(见下文)。但是,我真的坚持使用 system() 命令的正确语法。

我以前在这里得到过帮助,从那以后我什至让它可以使用 dos for 循环,但这超出了我的范围。根据我在 SO 上看到的其他建议,我尝试了各种转义序列并将整个命令封装在 2-3 个引号中。

命令是:

C:\Program Files\Wireshark\tshark.exe -a duration:130 -i 3 -T fields -e frame.number -e frame.time -e _ws.col.Info > c:\test\output.csv

我试过:

system("start C:\\Program\ Files\\Wireshark\\tshark.exe -a duration:130 -i 3 -T fields -e frame.number -e frame.time -e _ws.col.Info > c:\\test\\tshark2.csv &");

system("\"start C:\\Program\ Files\\Wireshark\\tshark.exe -a duration:130 -i 3 -T fields -e frame.number -e frame.time -e _ws.col.Info\" > c:\\test\\tshark2.csv &");

...等等。

如果不是因为目录中的空间,我想我可能已经过去了。更改为运行 tshark 的目录是否更容易?另外,到目前为止,我得到的建议是在系统调用中使用“start”,如果这是错误的,请随时指出。

很抱歉提出这些问题,但我最近才接触 C++,而且我还在适应一些事情......

我应该补充一点,我还试图让它作为后台作业运行,并让我的脚本的其余部分在它运行时继续运行。

最佳答案

每个人的答案几乎都是正确的。试试这个:

system("\"C:\\Program Files\\Wireshark\\tshark.exe\" -a duration:130 -i 3 -T fields -e frame.number -e frame.time -e _ws.col.Info > c:\\test\\tshark2.csv");

在您的问题中,行尾有一个“&”。这在 Linux 和其他 *nix 系统上用于在后台运行作业。在 Windows 上,'&' 是一个命令分隔符(允许您将多个命令放在同一行)。要在后台运行,您需要使用 start 命令。但是,如果启动命令的第一个参数用引号引起来,start 命令会将其视为窗口标题。然后真正的命令成为第二个参数。所以你应该在实际参数之前在引号中添加一个虚拟参数:

system("start \"\" cmd /c \"C:\\Program Files\\Wireshark\\tshark.exe\" -a duration:130 -i 3 -T fields -e frame.number -e frame.time -e _ws.col.Info ^> c:\\test\\tshark2.csv");

另请注意,重定向运算符 > 需要转义为 ^>,这样就不会重定向 start 命令的输出(这没什么)它重定向了 tshark 命令的输出。 > 需要被 cmd.exe 解释,所以 start 的参数必须是 cmd

仅当您要在后台运行的程序是控制台应用程序(即通常在命令提示符窗口中运行的应用程序)时,才需要 start 命令。如果它是一个普通的 Windows 应用程序,那么它将与启动它的应用程序同时运行,因此不需要使用 start

关于c++在后台运行system(),目录路径中有空格,+输出到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901932/

有关c++在后台运行system(),目录路径中有空格,+输出到文本文件的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  4. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  7. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  8. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  9. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  10. ruby - 如何进行排列以有效地定制输出 - 2

    这是一道面试题,我没有答对,但还是很好奇怎么解。你有N个人的大家庭,分别是1,2,3,...,N岁。你想给你的大家庭拍张照片。所有的家庭成员都排成一排。“我是家里的friend,建议家庭成员安排如下:”1岁的家庭成员坐在这一排的最左边。每两个坐在一起的家庭成员的年龄相差不得超过2岁。输入:整数N,1≤N≤55。输出:摄影师可以拍摄的照片数量。示例->输入:4,输出:4符合条件的数组:[1,2,3,4][1,2,4,3][1,3,2,4][1,3,4,2]另一个例子:输入:5输出:6符合条件的数组:[1,2,3,4,5][1,2,3,5,4][1,2,4,3,5][1,2,4,5,3][

随机推荐