Articles of batch file

用批量从网站下载文件

我正在尝试创build一个自动化脚本来安装和更新Windows工程编辑器MCEDIT。 这是我到目前为止 @echo off REM finds the architecture of the windows installation. reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set arc=32BIT || set arc=64BIT if %arc%==32BIT GOTO 32 if %arc%==64BIT GOTO 64 REM placeholder for testing. set version=1.5.3.0 :32 REM attepts to use bitsadmin to download file but fails. bitsadmin.exe /transfer "JobName" […]

FOR / F命令循环中的ERRORLEVEL返回意外的结果

我正在尝试loggingnet stop的输出,同时还捕获其错误。 基于这个问题 ,我尝试了嵌套子例程中的以下内容: set /a loopIndex=0 for /F "usebackq delims=" %%i in (`net stop %SERVICE_NAME%`) do ( if !loopIndex! EQU 0 if !errorlevel! EQU 1 set statementError=1 set /a loopIndex+=1 call :logMessage "%%i" ) echo statementError: %statementError% 然而,这是行不通的,即使net stop成功,也会抛出1 。 这可能没有临时文件? 如果没有,临时文件解决scheme是什么样的?

Windowsbatch file创buildcsv文件和date列表

我需要创build一个Windowsbatch file,为一个目录中的所有文件(减去batch file本身!)生成一个带有三个字段的.csv文件。 领域: 文件名(可以包含逗号!) 创builddate 修改date 请注意,该batch file将从目录运行,并应知道为当前目录中的文件生成.csv文件,但不应列出batch file或生成的.csv文件。 Powershell,VBScript等在我的情况下是不可行的,所以它必须是一个Windowsbatch file。 编辑: 以下是我尝试的两种主要方法。 第一次尝试:我尝试将裸文件名分隔为“temp1.tmp”,将创build时间戳的文件列表分隔为“temp2.​​tmp”,将修改时间戳的文件列表分隔为“temp3.tmp”。 DIR /B /A:-DH | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp1.tmp" DIR /A:-DH /T:C | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp2.tmp" DIR /A:-DH […]

一个JAR文件如何删除自己?

我需要一个JAR文件来删除它自己。 问题是Windows在运行时会lockingJAR文件,并且无法直接删除它自己。 我已经研究了批处理脚本可以终止JAR进程然后删除文件的解决scheme,但是 System.exit(0)是不需要的,因为它不能通过Batch文件运行。 taskkill /F /IM "java.exe"不是所希望的,因为它杀死了所有的 Java进程。 jps不能使用, 因为它只在JDK可用 ,用户可能运行JRE ,从而失败。 我一直在寻找一种解决scheme,它可以让我使用Java代码find当前JAR的PID ,然后写出一个Batch命令并插入杀死进程的PID ,例如: printWriter.println("taskkill /PID " + currentJARPID); 如果你想知道这是什么,你可以检查这个答案。

将批量stderrredirect到文件

我有一个执行Java应用程序的batch file。 我试图修改它,以便每当发生exception时,它会将STDERR写入文件。 它看起来像这样: start java something.jar method %1 %2 2>> log.txt 有没有一种方法可以将参数%1和%2写入log.txt文件? 我不想每次调用这个batch file的时候都把它写到日志文件中,只有在发生exception的时候。 我试图寻找一种方法将STDERRredirect到一个variables,但我无法弄清楚。 理想情况下,我希望日志文件看起来像这样: Batch file called with parameters: – "first arg" – "second arg" Exception: java.io.exception etc… ———————————— Batch file called with parameters: – "first arg" – "second arg" Exception: java.io.exception etc…

如何等待,直到我的batch file完成

我正在做一个程序,我需要启动cmd,并启动一个batch file。 问题是我正在使用MyProcess.WaithForexit(); 我认为它不会等待batch file处理完成。 它只是等到cmdclosures。 我的代码到目前为止: System.Diagnostics.ProcessStartInfo ProcStartInfo = new System.Diagnostics.ProcessStartInfo("cmd"); ProcStartInfo.RedirectStandardOutput = true; ProcStartInfo.UseShellExecute = false; ProcStartInfo.CreateNoWindow = false; ProcStartInfo.RedirectStandardError = true; System.Diagnostics.Process MyProcess = new System.Diagnostics.Process(); ProcStartInfo.Arguments = "/c start batch.bat "; MyProcess.StartInfo = ProcStartInfo; MyProcess.Start(); MyProcess.WaitForExit(); 我需要等到batch file完成。 我怎么做?

批量处理文件一个接一个

我有一个batch file来压缩PNG文件。 当我拖放一些batch file时,它开始在同一时间处理所有文件。 当我尝试了数百个文件时,它变得毫无用处(当然) 主要部分是这样的(简化) START "" /W truepng.exe /out "%~n1_out1.png" %1 START "" /W pngwolf.exe –in="%~n1_out1.png" –out="%~n1_out2.png" 我想我必须解决“%1”部分。 我正在尝试使用4个文件块来batch file。 思考2​​个不同的问题,都罚款。 1.处理前4个文件,继续其他4个 2.或者它会同时运行最多4个“pngwolf.exe”实例(最好的选项) 在我的几个testing中,我在%n之后开始尝试使用一个计数器逻辑%1%2%3%4 …但即使在这个阶段,我也陷入困境,无法创build一个计数器系统。 不需要问,确定我是批处理编码的新手。 但即使是一个好的devise师,看起来像我需要批量学习更多。 感谢任何人都会伸出援手。 希望有一个简单的解决scheme,我可以理解和适应。 所有最好的

BATCH脚本 – 读取XML并为同一个标记/元素返回多个值,并将其作为variables传递

这是代码,它只读取xml文件中的最后一个TargetEndpoint标记,并将输出作为 – Facebook @echo off setlocal enableextensions EnableDelayedExpansion set input="TP.xml" for /f "tokens=3 delims=<> " %%i in ('type %input% ^|find "TargetEndpoint"') do set "targetsName=%%i" echo %targetsName%" 我们希望能够读取所有TargetEndpoint标签并输出,以便将其作为variables数组传递给批处理脚本 – Apple,Google,Microsoft,Adobe,Facebook XML文件供参考: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Name revision="1" name="myname"> <ConfigurationVersion majorVersion="4" minorVersion="0"/> <Description>myxml</Description> <Policies> <!–test1 –> </Policies> <Resources> <!–test1 –> </Resources> <TargetServers/> <TargetEndpoints> <TargetEndpoint>Apple</TargetEndpoint> <TargetEndpoint>Google</TargetEndpoint> <TargetEndpoint>Microsoft</TargetEndpoint> <TargetEndpoint>Adobe</TargetEndpoint> […]

设置一个环境variables

我正在使用XP。 我在使用variables时遇到问题。 我正在使用以下代码 @echo off set var =“srting” 当我检查var的值使用% 设置%var% 环境variables%var%未定义 任何人帮助…

使用文件夹名称和序列号批量重命名文件 – 发送到菜单

我有一个名为销售的文件夹。 我在该文件夹中有imgxy.jpg,imgab.jpg等。 当我右键单击销售文件夹,并发送到rename.bat文件(我已经将rename.bat文件复制到c:\文件和设置\用户名\发送到 )我想销售文件夹中的文件更改为sales1。 jpg,sales2.jpg等这个行为应该是我发送给这个.bat文件的东西。 以下代码昨晚在Windows 7上正常工作。 现在我是Windows XP的SP3,它的工作。 它试图重命名文件夹中的文件* c:\文件和设置\用户名* 请帮助下面的rename.bat文件代码 @ECHO OFF setlocal enabledelayedexpansion set foldername=%1 for %%i in (%bar%) do set bar=%%~ni FOR /D %%# in (%bar%) DO ( PUSHD "%%#" FOR %%@ in ("*") DO ( set /a "inc+=1" Echo Ren: ".\%%~n#\%%@" "%%~n#!inc!%%~x@" Ren "%%@" "%%~n#!inc!%%~x@" ) POPD )