Articles of batch file

批字符转义

我相当精通Windows编写批处理脚本,但即使这些年来如何正确地转义字符拼图我。 当试图找出正确的方法来逃避sed使用的正则expression式是特别困难的。 有什么工具可以帮助我吗? 也许东西,让我粘贴在一个“正常”的string,它吐出了正确的逃避版本的string? 更新:我不愿举一个例子,因为我没有find如何转义一个特定string的答案。 我也没有寻找一个解决scheme,将适用于一个特定的应用程序。 我正在寻找一个工具,这将帮助我得到正确的逃生语法每一个string我需要逃脱,无论是什么工具可能会消耗它从命令行。 这就是说,我真正想要的是正则expression式 (^.*)(Form Product=")([^"]*") FormType="[^"]*" FormID="([0-9][0-9]*)".*$ 采取真正的正则expression式(即就BATCH而言未转义),并将其封装在某些sed语法中,如ssed "s@ — Insert escaped regex here — @http://psph/\1/\2@g" "%~1"并最终转义它…再次,有没有任何工具,可以帮助逃脱任何string在BATCH命令行上使用? ps BATCH的转义语法有很多例外,我甚至可以解决一个好的备忘单。

在Windowsbatch file中比较2个date

如何比较batch file中的2个date? 这个: if %%newdate geq %olddate% _do smth_ 不起作用。 在这种情况下,我有这个 27.05.2013 大于 15.07.2013和 14.07.2013 小于 15.07.2013 振亚

.bat当前文件夹名称

在我的蝙蝠脚本中,我正在调用另一个脚本并传递一个string参数 cscript log.vbs "triggered from folder <foldername> by Eric" 您可以看到的string参数包含脚本被调用的文件夹的名称。 什么是正确的方式来通过这个dynamic插入这个文件夹名称的脚本?

批处理脚本 – 一个接一个地运行exe程序

我有一些EXE程序,想要一个接一个地运行batch file。 实际上一个包含2个EXE程序的一些参数。 Example. @echo off start prog1.exe start prog2.exe /—wait untill prog1.exe and prog2.exe finish–/ start prog3.exe start prog4.exe

SETX不会将path追加到系统pathvariables

我试过下面的命令,通过batch file追加一些path到系统pathvariables: setx PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.5\bin" 在运行上面的batch file之后,我检查了系统variablespath,上面的path不在那里。 您可以在下面看到所有的窗口Variable value内容: C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMDAPP\bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static; 我究竟做错了什么?

批量ERRORLEVEL ping响应

我正在尝试使用batch file来确认使用ping的networking连接。 我想做批处理运行,然后打印,如果ping成功或没有。 问题是,当按批次运行时,它总是显示“失败”。 这里是代码: @echo off cls ping racer | find "Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)," if not errorlevel 1 set error=success if errorlevel 1 set error=failure cls echo Result: %error% pause “赛车手”是我电脑的名字。 我有我的电脑本身,所以我可以消除一个糟糕的连接variables。 正如我之前所说的,批次总是导致失败。 奇怪的是,如果我将代码复制到命令提示符下,程序工作正常。 有谁知道为什么程序在命令提示符工作正常,但不作为批处理? 谢谢

FFMPEG – 批量转换子文件夹

我正在尝试设置一个Windowsbatch file来使用FFMPEG转换一些MP4文件。 在多个子文件夹中有许多文件,因此我需要在每个子文件夹中的每个文件上执行该脚本。 恐怕我没有太多使用batch file的经验,但从我的研究中,我得到了以下命令文本: FOR %%i in (*.mp4) /R DO (ffmpeg32 -i "%%~ni.mp4" -map 0:0 -map 0:1 -map 0:1 -c:v copy -c:a:0 aac -b:a 128k -ac 2 -strict -2 -cutoff 15000 -c:a:1 copy "%~ni&(2).mp4") 该脚本基本上需要将AACaudiostream添加到现有的MP4文件,因此我需要通过在文件名末尾添加(2)来更改输出名称。 我已经单独testing了ffmpeg命令,所以很高兴,它只是需要得到正确的批处理命令。 提前感谢任何指针! 干杯

删除Windows中除2个最新文件夹以外的所有文件夹

我想删除除最近更新的两个文件夹(最后修改date)以外的所有文件夹。 我想用命令行来做这个。 我该怎么做? 以下是显示按上次修改时间sorting的文件夹的代码: dir /ad-h /od 我尝试使用FOR /D命令: for /d "skip=2 tokens=*" %G in ("dir /ad-h /od") DO echo going to delete %G 但是我得到了下面的错误信息: "skip=2 tokens=*" was unexpected at this time. 我该怎么做?

如何在批处理脚本中使用WMIC获得内存利用率的百分比?

我没有得到仅使用WMIC批处理脚本的内存利用率的结果。 我只获得了总字节数和空闲内存。 那么如何以MB为单位以及如何计算内存利用率? 代码1: – @echo off setlocal enabledelayedexpansion set Times=0 for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do ( set Cpusage!Times!=%%p set /A Times+=1 ) echo CPU Percentage = %Cpusage0%%% set Times=0 for /f "skip=1" %%p in ('wmic ComputerSystem get TotalPhysicalMemory') do ( set totalMem!Times!=%%p set /A Times+=1 ) set Times=0 for […]

批处理脚本显示没有输出

关于我之前收到的问题和答复(可以在这里find),我正在寻求关于批处理脚本的帮助。 根据收到的上述问题的答复,我创build了一个批处理脚本,如下所示: @echo off setlocal enabledelayedexpansion ping -n 1 %1 | find "TTL=" > NUL IF NOT ERRORLEVEL 1 ( FOR /F %%i IN ('wmic /node:%1 computersystem get Name') DO (SET A=%%i) FOR /F %%i IN ('wmic /node:%1 computersystem get Domain') DO (SET B=%%i) FOR /F %%i IN ('wmic /node:%1 computersystem get UserName') DO (SET […]