Articles of batch file

使用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中删除后缀。 我怎样才能做到这一点?

recursion查找和replace文件

我想要做的是以下。 我想创build一些bat文件,它将从当前目录开始recursionsearch文件,并replace为我提供的文件。 例如。 如果我想search并replacetest1.txt,我打开这个小应用程序,并写入text1.txt,并放置我想要replace的文件。 迪尔 app.bat test1.txt // app将recursionsearch文件夹1和文件夹2,并将用test1.txtreplace所有find的结果 文件夹1 文件夹2 我想知道,如果有准备去应用程序或bat文件出于这个原因?

bat文件脚本来检查string是否包含其他string

我需要写一个batch file来检查variables是否包含特定的值。 我试图做到以下几点: If "%%a"=="%%a:%pattern%" ( echo Yes ) else ( echo No ) input示例:%% a =“bob binson”%patern%=“binson” 我从来没有得到印! 任何人都可以请告诉我错过了什么,或者给出一个他将如何做的例子? 提前致谢

在“if”块中设置variables

下面的程序最后总是回应“machine-abc”: @echo Off set dropLoc=machine-abc IF %computername% == "xyz" ( %dropLoc% = machine-xyz ) echo %dropLoc% 这是一个范围问题? if语句中的dropLocvariables是否有不同的作用域? 我已经尝试了以下来解决这个问题: @echo Off set dropLoc=machine-abc IF %computername% == "xyz" ( !dropLoc! = machine-xyz ) echo %dropLoc% 和 @echo Off set dropLoc=machine-abc IF %computername% == "xyz" ( set dropLoc = machine-xyz ) echo %dropLoc% 我该如何做这项工作?

在Windowsbatch file中寻找Unix风格的“getopt”命令行parsing

任何人都可以帮助我find一些parsingWindowsbatch file中的命令行参数,就像在Unix shell脚本中使用getopt / getopts一样? 它不一定都是Posix-y; 只是我可以指定我期望的开关,哪些需要/允许参数。 他们不需要是“长”的开关; 单个字符将工作。 它可以是batch file调用的外部.exe文件。 它必须是免费分发的。

batch file从文本文件中总结数字,并将总值写入文本文件

我在文件夹1中有300个文本文件,在文件夹2中有300个文本文件 下面是一个文本文件的示例内容 india,car,10 uk,car,20 us,car,50 我想总结第三列,并将其写入相同的文本文件。 例, for /f "tokens=3 delims=," %%a in (folder1\textfile1.txt) do set /a total+=%%a echo %total% >folder1\textfile1.txt 上面的代码将在textfile1.txt中写入80 请告诉如何使用batch file对所有300个文本文件执行相同操作。

用putty在批处理中input第二个用户名和密码

我想知道如何在初始login成功后在腻子中自动input用户名和密码。 我有一个bat文件connect.bat @echo off putty [user]@[host] -pw [password] 运行这个之后,它打开一个新的腻子窗口并validationlogin。 如果成功,我不会redirect到shell,而是redirect到另一个login屏幕。 下面的示例。 然后,我需要通过input以下内容手动input不同的用户名和密码。 [username] [ENTER KEY] [password] [ENTER KEY] 最后redirect到主机的菜单。 我尝试了以下内容: echo [username] & [password] | putty [user]@[host] -pw [password] putty [user]@[host] -pw [password] < user_pass.txt putty [user]@[host] -pw [password] -m user_pass.txt 但失败了,有没有办法通过批处理/ PowerShell脚本来执行此操作,还是应该合并另一个应用程序?

检查命令是否在CMD内部

我有一个命令的名字,我需要检查这个命令是否是内部的。 我怎样才能在批处理脚本?

如何迭代所有的registry项?

我正在尝试遍历所有的registry项以便查找(包含)并删除jre1.5.0_14值。 有没有办法做到这一点? 下面的代码只是在特定的键下findjre1.5.0_14! 我想要迭代所有的键。 顺便说一下,如果子句得到,如果它等于jre1.5.0_14,但它应该是如果它包含jre1.5.0_14。 提前致谢。 最好的祝福。 @echo off setlocal set KEY_NAME="HKEY_CURRENT_USER\Software\Microsoft\Notepad" set VALUE_NAME=jre1.5.0_14 FOR /F "skip=2 tokens=3" %%A IN ('REG QUERY %KEY_NAME%') DO if "%%A"=="%VALUE_NAME%" ( @echo %%A )