Articles of batch file

从一个batch file启动多个shell提示

我有一套DOS命令,我需要在不同的shell实例中运行。 是否有一个可以写入多个cmd实例的单个batch file,并在每个提示中执行一组DOS命令?

快速的方法来复制(移动)batch file中的文件

我在一个目录中有大量的文件需要validation。 问题是,文件浏览器花费太多的时间来加载文件列表,我的整个计算机变得缓慢。 所以我写了下面的代码,通过移动一定数量的文件(显示为%limit% ,并将700)到编号文件夹(显示为%DirN% )来对文件进行%DirN% for /f "tokens=1-2 delims=:" %%a in ('dir /b /ad ^|findstr /n /v ".bat .cmd .txt"') do if %%a lss %limit% robocopy "%cd%" "%cd%\%DirN%" "%%b" /mov >nul 这个代码本身就像devise一样工作得很好,但是另外一个问题是速度。 由于我正在处理占用20 GB磁盘的文件,因此代码似乎需要永远以这种方式移动文件。 有没有更快的方法来复制(移动)文件? PS。 我试过/move和/xcopy命令,但没有看到太多的差异。 既然有一个上下文的请求,我附上完整的代码: @echo off pushd %~dp0 set DirN=-1 :Check_DirN set LeftOver= for /f "tokens=*" %%a in ('dir /b /ad […]

如何用文件* .log中的“;”replacewindows中的batch file* .csv

我有很多文件* .log包含以下行: 三千三百三十三分之一万一千一百一十一/6666分之45555/ 2222 // 7777 我需要用“;”replace所有的“/” 产生以下结果: 11111; 3333; 45555; 6666; 2222 ;; 7777 但结果必须在同名的文件中,但只是一个不同的扩展名:* .csv。 我怎么能在Windows上使用MS-DOS批处理? PS:我不能使用.net,perl,vbscript或者一些库。 这个脚本如果是面试,他们想testing我是否知道Windows脚本。 我已经尝试开始,但不工作… @echo off setlocal ENABLEDELAYEDEXPANSION for /f "delims='/' tokens=*" %%i in ('findstr "\/" Input.txt') do ( echo %%i set str=%%i set myvar=";" set str=%str:"/"=!myvar!% echo %str% ) 提前谢谢了。

使用Windows Batch比较3对XML文件

我试图创build一个batch file,读取存储在两个不同位置的3对相同的XML文件,并比较它们的构build版本是否相同或不使用xml文件中的构build标记和次要标记等不同的标记。 我有3个XML文件,master.xml,TGDD.xml和TMasterData.xml.I已经在2个不同的位置存储这3个XML文件,并希望检查他们的版本是否相同或不在这两个位置。 批码是.. @echo off setlocal enableextensions disabledelayedexpansion set "build=" set "build1=" set "gddbuild=" set "gddbuild1=" set "tbuild=" set "tbuild1=" set "ans=Master_Data version same" set "wrong=Master_Data version not same" set "ans1=TGDD version same" set "wrong1=TGDD version not same" set "ans2=TMasterData version same" set "wrong2=TMasterData version not same" for /f "tokens=3 delims=<>" %%a in (' […]

batch filevariables在for循环中初始化

我有一个batch file,它通过在for循环中的SET初始化variables,用于磁盘上的一组文件: for %%f in (%MYTARGETDIR%\*config.xml) do ( SET TMPFILE=%%F.tmp echo In loop %TMPFILE% ) echo End loop %TMPFILE% 当我在一个全新的命令行(没有定义TMPFILE)中运行这个时,In循环回显为空,但是结束循环回显不是。 当我第二次运行,它已经设置,并输出它的值,忽略集合,直到循环closures。 想法为什么这是,以及解决方法是什么?

batch file删除比指定date更早的文件

可能重复: 批文件删除N天以前的文件 如何创buildbatch file来删除比特定date早的文件? 这似乎不工作; :: ——–DELOLD.BAT———- @echo off SET OLDERTHAN=%1 IF NOT DEFINED OLDERTHAN GOTO SYNTAX for /f "tokens=2" %%i in ('date /t') do set thedate=%%i type %1 pause set mm=%thedate:~0,2% set dd=%thedate:~3,2% set yyyy=%thedate:~6,4% set /A dd=%dd% – %OLDERTHAN% set /A mm=%mm% + 0 if /I %dd% GTR 0 goto DONE set /A […]

为什么我的stderrredirect在命令完成后结束? 我该如何解决?

在Windows中,无论是在命令行还是batch file中,命令“DIR 2> NUL:3>&2”(即使不是文件或命令,也可以用“DIR”代替任何文件或命令)那么除非你在每一个命令后都写上“2> CON:”。 为什么CMD甚至做到这一点? 如何在不开始新的CMD过程的情况下恢复正常? “DIR 2> CON:3>&2”仅适用于单独的命令。 编辑:这将与文件一起工作。 “DIR 2> TEXT.TXT 3>&2”之后的任何错误都会附加到文件中。

如何创buildbatch file来重命名文件夹中的大量文件?

我想重命名WinXP系统上的文件夹中的大量文件,最好使用batch file。 这些文件目前是这样命名的: Vacation2010 001.jpg Vacation2010 002.jpg Vacation2010 003.jpg 我想把它们改成: 12月001.jpg 12月002.jpg 12月003.jpg 我怎样才能执行这个操作?

在一个Windowsbatch file中,你可以链接执行一些不是另一个batch file的东西吗?

我知道如果你有两个.bat或.cmd文件,我们称它们为foo和bar ,以下规则适用: 没有call : :: Welcome to foo.bat @bar.bat @echo We never get to this line because bar.bat is "chain-executed". 随着call : :: Welcome to foo.bat @call bar.bat @echo This line is executed after bar.bat returns. 我的问题是:是否有一种方法来执行逆向操作,即确保非batch file可执行文件被链接? :: Welcome to foo.bat @chain bar.exe @echo Even though bar is now an .exe, we never get […]

批量转到失去错误级别

考虑下面的bat,test.bat(PC01closures): mkdir \\PC01\\c$\Test || goto :eof 如果我从命令行运行那个蝙蝠: > test.bat || echo 99 > if ERRORLEVEL 1 echo 55 输出是55.没有99.有一个错误级别,但'||' 运营商没有看到它。 如果我使用cmd / c来运行该蝙蝠 – > cmd /c test.bat || echo 99 > if ERRORLEVEL 1 echo 55 输出是空白的。 错误级别是0。 如果我删除“||” goto:eof',一切都按照人们预测的那样工作,即输出为99.55 有谁知道为什么这半熟的ERRORLEVEL行为发生?