Articles of batch file

如何在vbs中传递包含空格的参数?

我有一个批处理脚本: test.bat的 echo first arg is %1 pause 我想从一个带有pipe理权限的vbscript调用,如下所示: test.vbs Set UAC = CreateObject("Shell.Application") UAC.ShellExecute "test.bat", "argument", "", "runas", 1 这工作正常,但我无法传递包含空格作为单个参数的path参数。 基本上,我需要将参数放在空格中,但无论我尝试什么,都不起作用。 它看起来像调用批处理,但cmd窗口只是闪烁起来,消失,所以我不知道什么是错的。 我试过了: UAC.ShellExecute "test.bat", """has spaces""", "", "runas", 1 和 UAC.ShellExecute "test.bat", Chr(34) & "has spaces" & Chr(34), "", "runas", 1 和 UAC.ShellExecute "test.bat", '"has spaces"', , "runas", 1 和 UAC.ShellExecute "cmd", "/c […]

For循环中的错误级别(批处理窗口)

我有以下的Windows批处理代码: for %%i in (iidbms iigcc iigcd dmfacp dmfrcp rmcmd qwerty) do ( tasklist | findstr /i %%i echo %errorlevel% if %errorlevel% == 0 (echo %%i ok process found %errorlevel%) if %errorlevel% == 1 (echo %%i no process found %errorlevel%) ) 但是它不能像我所期望的那样工作。 所有名称进程iidbms , iigcc , iigcd , dmfacp , dmfrcp , rmcmd都是真实的,而且它们是被发现的,而qwerty是一个发明的,不应该find它,所以应该打印“no process found […]

Windows BAT:testing特定文件是否为空

我想检查一个特定的文件是否在Windows .bat文件中是空的。 这是我的非工作脚本: set dir="C:\test" set file="%dir%\fff.txt" cd %dir% if %file%%~zi == 0 exit ftp -s:"%dir%\ftp.action" exit 你能帮我debugging吗?

batch file以recursion方式删除N个天数以前的文件夹中的文件

我正在使用batch file来删除以.snp结尾超过180天的所有文件。 下面的代码用于删除以根文件夹下的.snp结尾的所有文件 C:\ Program Files \ Snapshots 但我最近发现,在快照文件夹中有按date组织的文件夹 “1-10-2014,12-20-2014,10-15-2014等”。 而下面的代码行不能recursionsearch每个目录,因此不能删除。 我应该对这段代码做什么修改,让它recursionsearch根文件夹中的文件夹并删除大于180天的文件? forfiles /M *.snp /P "C:\Program Files\Snapshots" /S /D -180 /C "cmd /c del /F /Q @path"

文件名。 在batch file中

我有一个Windowsbatch file,曾经工作,但因为我改变了笔记本电脑,它失败了。 我想这是由我的文件path中的点(。)引起的,但是我一直无法find解决此问题的方法。 我基本上通过一个文件名称到我的batch file,让它处理它,但它开始从文件中读取行时失败: echo MBP File: %1 rem Check that the file is a MapBasic Project File if /I "%~sx1" NEQ ".mbp" ( echo Error: file %~dpnx1 is not a MapBasic Project File ^(^*.mbp^) goto :EOF ) else ( echo file %1 is a MapBasic Project File ^(^*.mbp^) ) echo Looping MBP for […]

如何从所有子目录合并具有相同名称的文本文件?

我有几个文件夹的文件。 文件可以具有相同的名称。 我想将文件连接成每个名称之一。 提前致谢。 编辑:对不起,你可以给我看看它的batch file。

Windows批处理脚本来解压目录中的文件

我想解压缩某个目录中的所有文件,并在解压缩时保留文件夹名称。 下面的批处理脚本并不完美。 它只是抛出一堆文件,而不把它们放到一个文件夹,甚至没有完成。 这里有什么问题? for /F %%I IN ('dir /b /s *.zip') DO ( "C:\Program Files (x86)\7-Zip\7z.exe" x -y -o"%%~dpI" "%%I" )

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% 我该如何做这项工作?