Articles of batch file

使用Powershell在BAT中input默认的可编辑string

我正在试图在BAT脚本中获得可编辑的input,类似于在bash中读取-i。 我看到了各种解决方法,但是我发现它们太复杂或太长,或者依赖于其他文件/非本地资源。 有没有什么办法可以在bat中使用powershell来模仿可编辑默认string的input? 我发现这可以从蝙蝠内部调用: powershell -Command "$input = read-host 'Enter Input: '"

Win bat文件:如何将前导零添加到for循环中的variables?

非常简单,我猜…我需要通过向下面的循环索引variables(%% i)添加前导零来获得可用的variables。 @echo off for /L %%i in (1, 1, 5) do ( echo %%i rem How to create a variable j here as a rem result of adding leading zeros to %%i? (001, 002, 003 etc.) ) pause 怎么样? 我已经尝试了以下,但我无法获取%%我variables的值var_ var_ … @echo off & setlocal enableextensions for /L %%i in (1, 1, 5) […]

Windowsbatch file读取文本文件并将全部转换为大写

我只是简单地将文本文件中的所有文本都replace为大写。 以abc.txt为例 [转换前]名字,姓氏,全名Brad,Pitt,Brad Pitt [转换后]名字,姓氏,全名BRAD,PITT,BRAD PITT 那可能吗??

检查一个环境variables是否没有使用命令扩展并且没有使用batch file?

我需要使用cmd.exe命令行(从gyp构build工具调用cmd.exe)来确定是否定义了环境variables。 我怎样才能做到这一点? 我很好,假设variables值不包含单引号或双引号,但不能假定启用了命令扩展。 我试过了下面这个,它在.bat文件中很好用,但是直接在命令行input时会失败: IF "%UNDEFINED%" == "" (echo yes) 当确切的行在.bat文件中并执行时,我将yes看作输出。 当我在命令行上input时,输出是空的。 我正在Windows XP SP3上进行testing,尽pipe我的同事在Windows 7上看到了相同的结果。这是http://support.microsoft.com/kb/121170和http://www.robvanderwoude.com/ battech_defined.php 。 我不想使用IF DEFINED UNDEFINED (echo yes)因为如果命令扩展被禁用,那将无法工作。 在接下来的文章中,得票最多的答案让我相信这个问题与“CmdLineParser”与“BatchLineParser”中百分比扩展的处理方式是不同的,但仍然没有使我得到一个解决scheme: Windows命令解释器(CMD.EXE)parsing脚本?

如何在Windowsbatch file中设置命令的工作目录?

假设我有这些命令: Prog1.exe D:\SomeDir\Prog2.exe Prog3.exe 现在,对于第二行,我想工作目录是D:\ SomeDir,但在Prog1.exe和Prog3.exe我想要默认的工作目录(通常,我的.bat文件的位置)。 如果我尝试这个 Prog1.exe cd D:\SomeDir D:\SomeDir\Prog2.exe Prog3.exe 显然Prog3将在SomeDir中执行,这不是我想要的。

Windows批处理:模拟“超时”命令

我试图找出如何限制一个Windowsbatch file中的程序执行时间。 有没有像Unix timeout命令? 请指教。

用批处理更新xml文件

我一直在寻找一个小时,没有运气 我的老板希望它是一个batch file 我有一个包含以下的XML文件。 <?xml version="1.0"?> <profiledoc default="*** Last Run ***"> <profile name="*** Last Run ***" > <workingdir>c:\proj</workingdir> <somestuff>none</somestuff> <smpnumprocs>4</smpnumprocs> <otherstuff></otherstuff> <llama>FLUFFY</llama> <language>en-us</language> <customexe></customexe> <addlparams></addlparams> <graphicsdevice>win32</graphicsdevice> </profile> </profiledoc> 我们要设置<smpnumprocs>4</smpnumprocs> (这是所使用的处理器的数量)为2,因此,该行应该看起来像这样<smpnumprocs>2</smpnumprocs> 我想出了如何达到我想要的价值 FOR /f "tokens=3 delims=>< " %%a IN ('TYPE %LOCAL_FILE% ^| FIND "<smpnumprocs>"') DO SET NUM_PROCS=%%a 现在我该如何改变价值?

如何通过使用“findstr”来匹配IP地址? 或者在Windows中批处理的任何其他方法

正如标题所说,我想在Windows中批量匹配ip地址,请告诉我如何才能做到这一点? 我看到“ findstr ”可以匹配正则expression式,如“ [0-9] ”,但“findstr”如何匹配它出现一到三次 ?

使用FOR或FORFILES批处理命令来单独存档特定文件

我有一组.iso文件在不同的目录和子目录中: <folder1> app1.iso app2.iso app3.iso <subfolder1> app1a.iso app2a.iso <subfolder2> app2b.iso app3b.iso <folder2> app4.iso app5.iso <subfolder5> app20.iso 使用batch file并预先安装了7-zip(使用configuration的PATH环境variables),我希望能够将每个.iso归档到它自己的.7z归档文件中。 我不想将当前文件夹中的所有.iso文件归档到一个归档文件中。 我试图与FORFILES一起创build自己的7-zip命令: FORFILES /P . /M *.iso /S /C "cmd /c 7z a -t7z @path.7z -mx9 -mmt >> C:\test\7z-log.txt" 但是,这是做什么的: app1.iso.7z – contains: app1.iso, app2.iso, app3.iso app2.iso.7z – contains: app1.iso.7z, app1.iso, app2.iso, app3.iso app3.iso.7z – contains: app1.iso.7z, […]

Windowsbatch file – 用string作为分隔符分割string

我试图在batch file中使用string(而不是字符)作为分隔符来分割string。 该string的格式为: string1 by string2.txt 分隔符是(是的,空格,单词“by”,后面是空格)。 我想要的输出是: string1 string2 所以,基本上,通过分隔符将string拆分成2个部分by并从第二个string中删除后缀。 我怎样才能做到这一点?