Articles of batch file

运行命令时如何防止batch file(.bat)closuresterminal?

在Windows 7机器上,如果我在terminal中手动运行一个像这样的PHPUnit Selenium命令: phpunit –verbose –log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php 它产生了一个浏览器,并运行testing就好了。 然后在屏幕上输出以下内容: Time: 10 seconds, Memory: 3.50Mb OK (1 test, 3 assertions) terminal保持打开。 现在,如果我复制并粘贴在一个空的文件中的确切的命令,并保存为test.bat并点击它,它也运行testing。 我可以看到浏览器打开,所有的testing运行。 唯一的问题就是closuresterminal提示符之后。 所以我看不到上面的输出。 一个更大的问题是,因为它closures了terminal,如果我添加了更多的命令后,其他testing之后,他们不运行。 我试着添加: pause 在蝙蝠文件结束但没有运气,它仍然closures。 任何想法如何防止这一点,并能够运行一个接一个的命令而没有terminalclosures?

Linux的bash脚本循环

我有1.txt 2.txt和script.php 1.txt: a b c d 2.txt www rrr ttt yyy 我希望bash文件在Linux下执行这个命令: ./script.php -na -j www>>n_j.txt ./script.php -na -j rrr>>n_j.txt ./script.php -na -j ttt>>n_j.txt ./script.php -na -j yyy>>n_j.txt ./script.php -nb -j www>>n_j.txt ./script.php -nb -j rrr>>n_j.txt ./script.php -nb -j ttt>>n_j.txt . . 我有一个蝙蝠代码与wondows cmd工作..我想要一个代码,它可以使用Linux命令行 @ECHO OFF FOR /F "tokens=1 delims= " %%I IN (1.txt) […]

顶部命令第一次迭代总是返回相同的结果

当运行top -b -n 1时,该命令总是返回相同的CPU值。 考虑连续5次以下的testing: [user@server ~]$ top -b -n 5 -d.2 | grep "Cpu(s)" Cpu(s): 18.5%us, 10.0%sy, 0.0%ni, 67.0%id, 4.2%wa, 0.0%hi, 0.2%si, 0.1%st Cpu(s): 39.8%us, 27.7%sy, 0.0%ni, 31.3%id, 0.0%wa, 0.0%hi, 1.2%si, 0.0%st Cpu(s): 39.0%us, 35.4%sy, 0.0%ni, 23.2%id, 0.0%wa, 0.0%hi, 1.2%si, 1.2%st Cpu(s): 41.2%us, 34.1%sy, 0.0%ni, 15.3%id, 1.2%wa, 0.0%hi, 2.4%si, 5.9%st Cpu(s): 59.0%us, 30.1%sy, 0.0%ni, […]

FORFILES date -after-(cmd文件中的date计算)

我想在一个cmd文件中使用FORFILES,在给定的date之后通过“today”来处理所有文件。 我可以使用forfiles /d +07/10/2013 /c "cmd /c echo @fname"东西在7/10/13之后执行,但是我想要的只是从90天开始计算在“今天”之前。 是否有一个date计算的语法,将在一个cmd文件,将让我指定“今天之前x天”饲料到FORFILES? 我更喜欢不使用VBS(并且发现了可以在VBS中工作的代码片段),不过我可以重写Powershell脚本,但理想情况下我想使用cmd。 为了澄清,“-90”会find所有超过90天的文件; “+90”会发现所有文件比今天晚了90天(这基本上是无用的,因为文件很less会在未来的date编写),“+7 / 30/2013”​​会查找所有比7/30更新的文件/ 2013。 我想要最后一段时间,最好能够传递给CMD文件的天数variables,也就是说“在今天之前x天之后”,即“在最近x天”。 所以,而不是如上所示使用硬编码的date,我希望能够在cmd文件中计算该date。

batch file来分割.csv文件

我有一个非常大的.csv文件(> 500MB),我希望在命令提示符下将其分解为更小的.csv文件。 (基本上试图在Windows中find一个Linux“分裂”function“。 这必须是一个批处理脚本,因为我的机器只安装了Windows,而且请求软件是一件痛苦的事情。 我遇到了一些示例代码( http://forums.techguy.org/software-development/1023949-split-100000-line-csv-into.html ),但是,当我执行批处理时,它不起作用。 我所得到的是一个输出文件,当我请求parsing每20000行时,它只有125kb。 有没有人遇到类似的问题,你是如何解决这个问题?

用Windows批处理脚本重命名目录中的所有文件

我将如何编写一个批处理或cmd文件,将重命名目录中的所有文件? 我正在使用Windows。 改变这个: 750_MOT_Forgiving_120x90.jpg 751_MOT_Persecution_1_120x90.jpg 752_MOT_Persecution_2_120x90.jpg 753_MOT_Hatred_120x90.jpg 754_MOT_Suffering_120x90.jpg 755_MOT_Freedom_of_Religion_120x90.jpg 756_MOT_Layla_Testimony_1_120x90.jpg 757_MOT_Layla_Testimony_2_120x90.jpg 对此: 750_MOT_Forgiving_67x100.jpg 751_MOT_Persecution_1_67x100.jpg 752_MOT_Persecution_2_67x100.jpg 753_MOT_Hatred_67x100.jpg 754_MOT_Suffering_67x100.jpg 755_MOT_Freedom_of_Religion_67x100.jpg 756_MOT_Layla_Testimony_1_67x100.jpg 757_MOT_Layla_Testimony_2_67x100.jpg

如何最小化我的bat文件中的命令提示符

我有这个bat文件,当我运行它时,我想最小化cmd窗口: @echo off cd /d C:\leads\ssh call C:\Ruby192\bin\setrbvars.bat ruby C:\leads\ssh\put_leads.rb 基本上我想立即将命令窗口最小化。 任何想法如何做到这一点?

正则expression式在日志文件内匹配,返回匹配上下的dynamic内容

我有一些格式如下的catchall日志文件: timestamp event summary foo details account name: userA bar more details timestamp event summary baz details account name: userB qux more details timestamp etc. 我想searchuserB的日志文件,如果find,从前面的时间戳回显到(但不包括)下面的时间戳。 可能会有几个匹配我的search的事件。 回应某种— start —和— end —围绕每场比赛将是很好的。 这对于pcregrep -M来说是完美的,对吗? 问题是,GnuWin32的pcregrep崩溃与多行正则expression式search大文件,这些pcregrep日志可以是100兆或更多。 我试过了 到目前为止,我的解决方法是使用grep -B15 -A30来find匹配的行并打印周围的内容,然后将现在更易于pipe理的块pcregrep到pcregrep进行打磨。 问题是一些事件不到十行,而另一些事件是30或更多; 在遇到较短的事件时,我会得到一些意想不到的结果。 :parselog <username> <logfile> set silent=1 set count=0 set deez=20\d\d-\d\d-\d\d \d\d:\d\d:\d\d echo Searching %~2 for […]

DOS批处理脚本与for循环和pipe道

我想所有的文件名不包含单词“摘要”的目录中的CSV文件。 在命令提示符下,我可以input以下命令 dir /b my_dir\*.csv | find /V "summary" 当我尝试将上述命令转换为batch file时,遇到了一个问题,那就是for循环中不支持pipe命令。 那是我不能做到以下几点 FOR /f %%A in ('dir /b my_dir\*.csv | find /V "summary"') do ( rem want to do something here ) 有人能告诉我如何解决上面的问题吗? 提前致谢!

通过batch file在GIT中创build修改文件的存档

我正在使用这个git命令来创build在特定提交中修改的文件的存档: git archive -o update.zip HEAD $(git diff –name-only COMMITID^) 其中COMMITID是我要归档的提交的ID。 这从命令行工作正常,但我想从batch file运行它。 以下是我正在使用的batch file的内容: git archive -o update.zip HEAD $(git diff –name-only %1^^) 其中%1是通过SourceTree传入的提交ID。 我遇到的问题是,从batch file运行时,此命令返回以下错误: 错误:未知选项`name-only' 我猜可能会有一些字符转义的问题,但我无法find具体的中断。 我将如何编写该git命令,以便它可以从batch file中工作? UPDATE 我尝试删除–name-only选项,并通过SourceTree尝试批处理脚本时收到以下错误: 致命的:找不到path:$(git 希望这有助于缩小可能发生的事情。 进一步更新 原来我的语法只是从特定的提交抓取修改的文件,但使用msandiford的答案是错误的我想出了这个batch file脚本,完美的作品: setlocal enabledelayedexpansion set output= for /f "delims=" %%a in ('git diff-tree –no-commit-id –name-only -r %1^^') do ( […]