Articles of batch file

多个命令在一个batch file中的问题

我是新来的,所以要温柔:) 我试图编写补丁文件开始批处理,并将其转换为exe文件一旦完成。 我有两个batch file,当单独执行,但是当我join到batch file(join之一)的第二部分中的一个不是完成任务(不添加registry项)时,工作得很好。 可以请你看看波纹pipe批次,让我知道我犯了什么错误(请注意这是特定于应用程序) 谢谢你提前 错误第1部分是删除目录和移动文件但是2dn不创buildregistry项请帮助 comd /c @echo ofF xcopy /y C:\ProgramData\Jeppesen\Common\TerminalChartsTemp C:\ProgramData\Jeppesen\Common\TerminalCharts rmdir /s /q C:\ProgramData\Jeppesen\Common\TerminalCharts.0.0 rmdir /s /q C:\ProgramData\Jeppesen\Common\TerminalCharts.alt.0 rmdir /s /q C:\ProgramData\Jeppesen\Common\TerminalChartsTemp ; @echo ofF ; CLS ; REGEDIT.EXE /S "%~f0" ; EXIT [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Jeppesen\JeppView for Windows\Paths] "CommonHidden"="C:\\ProgramData\\Jeppesen\\Common\\" "C2E_config"="C:\\ProgramData\\Jeppesen\\Common\\C2E4\\Config\\" "C2E_data"="C:\\ProgramData\\Jeppesen\\Common\\C2E4\\Data1\\" "ShapeData"="C:\\ProgramData\\Jeppesen\\Common\\C2E4\\Cultural\\" "TerrainData"="C:\\ProgramData\\Jeppesen\\Common\\TerrainData\\" "Themes"="C:\\ProgramData\\Jeppesen\\JeppView for Windows\\Themes\\" "Logs"="C:\\Users\\Public\\Documents\\Jeppesen\\JeppView for Windows\\Logs\\" "Bitmaps"="C:\\Users\\Public\\Documents\\Jeppesen\\JeppView for […]

为/ 24networking中的每台机器运行一个batch file

目前forms的脚本 @echo on setlocal EnableDelayedExpansion set /p ipAddress="enter ip address: " rem right now the loop is set to (1,1,50) for the sake of testing for /l %%i in (1,1,50) do ( ping -n 1 %ipAddress%.%%i | find "TTL" > nul if !errorlevel! == 0 ( deploy_mir.bat %ipAddress%.%%i ) ) endlocal 然后在已知的在线主机(10.167.194.22)上运行它的结果是 C:\DOCUME~1\socuser2\MIR>test.bat C:\DOCUME~1\socuser2\MIR>setlocal EnableDelayedExpansion […]

将文本文件的内容读入环境variables

其实我想把txt文件的内容传给if条件 我正在尝试以下 set /p var = < file name if not %var% == “string” goto x else goto y 但它不工作。 当我检查var的值时,它显示的variables不被拒绝 Set %var% 环境variables%var%未定义

Windows批处理:比较时间和string文字

我编写了一个批处理脚本, 如果某个目录中的文件名与预期的文件名在给定的时间范围内相同,那么该脚本将运行.exe 。 例如,path中的文件是“file1”和“file2”,而process_one =“file1”和process_two =“file2” 结果是,即使条件为假,它总是会转到第一个if语句。 在这里不工作的是if语句。 例如file1 =“filenameA.txt”; process_one =“filenmameB.txt” 它总是在第一个if语句中执行命令,即使它是假的。 我有没有比较正确的时间和string文字? 如果没有,那么时间和string文字的适当比较是什么? 这是我迄今为止所做的。 我在这里很新,所以谢谢你的所有见解。 🙂 @echo off For /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%x SET EnabledDelayedExpansion SET folderPath=D:\InputFiles SET month=%MyDate:~4,2% SET day=%MyDate:~6,2% SET year=%MyDate:~0,4% SET dateToday=%year%%month%%day% SET currentTime=%Time: =0% SET filename1=filename1_%dateToday%.dat SET filename2=filename2_%dateToday%.dat […]

loop&nslookup的批处理脚本

我之前看过这个问题,但没有解决我的问题。 我只是试图遍历包含主机名的文本文件。 当我从命令行尝试相同的命令(省略额外的百分号)时,它将工作一两次然后给出下面指出的错误。 将其作为batch file运行,batch file将不做任何事情而退出。 这一个真的难倒我。 以下是我的batch file中的代码: @echo off set OUTPUTFILE=Results/Results.txt set lookup=HostNames.txt FOR /F %%i in (%lookup%) do FOR /F "usebackq skip=3 delims=: tokens=2" %j in (`nslookup %i`) do @echo %%i %%j >> %OUTPUTFILE% 在一个命令行我得到: 我)在这个时候是意外的。 当我在命令行中运行它时,我将在batch file中运行时取出其他百分号。 我也在命令行中使用绝对path,以确保这不是我设置的环境variables的问题。

批文件string字符拆分

我想写一个batch file来存储一个文件名字符到一个variables。 例如,如果我的文件名是helloworld或how_are_you? ,我想把第四个字符从右边存入variablesx (在上面的例子中是o和_ )。 文件名在我的情况下没有空格。

batch file复制目录,如果它具有比目标目录更新的date

我们有一个文件共享,其目录包含我们所有的构build版本direcotries这样命名 WebApp_20140702.1第一个数字是date第二个数字是该date的构build计数 这些包含在以下目录中 \\server\share\product\ 我需要从虚拟机上做的是创build一个batch file,可以检查我的虚拟机,即目标位置。 c:\product\通过比较文件名或date查看它是否具有networking共享中的最新版本,然后复制新版本并在必要时删除旧版本。 到目前为止,我可以复制使用xcopy的文件夹,但这是关于我的DOS /batch file知识的程度iv有一个环顾一下,但一直没有能够看到我可以使用任何东西 这是我到目前为止,正如你可以看到,虽然我不知道如何做上述两个目录之间的比较。 xcopy "\\server\share\webapp" "c:\users\username\desktop\webapp" /E /K 我没有尝试在最后使用/D ,只是复制\\server\share\product\目录中的date比目标更晚的目录,但最终只是复制了整个目录。 编辑:让我自己清楚 我需要找出如果我有最新的子目录,但无论我做什么总是从\\server\share\product\ 即。 \\server\share\WebApp目录将包含以下子目录 ..\WebApp_20140628.1\ ..\WebApp_20140628.2\ ..\WebApp_20140703.1\ 我的虚拟机将有该目录 c:\product\WebApp_20140628.2\ 现在我需要能够进入文件共享,看到它有一个更新的子目录,我需要将该目录复制到我的虚拟机,然后从我的虚拟机删除旧的,所以我会然后有 c:\product\WebApp_20140703.1\

parsingWMIC输出

我有一个BAT脚本应该读取当前屏幕分辨率的variables。 我用wmic desktopmonitor get screenwidth /value分辨率wmic desktopmonitor get screenwidth /value命令(对于宽度,高度是相同的东西)。 示例输出: C:\Users\Pietu1998>wmic desktopmonitor get screenwidth /value ScreenWidth=1920 ScreenWidth= C:\Users\Pietu1998> 我有两个显示器,所以它只显示正在使用的分辨率。 我曾尝试使用for循环跳过前两个空行,然后读取数据。 set screenwidth= for /F "skip=2 tokens=*" %%F in ('wmic desktopmonitor get screenwidth /value') do ( if "%screenwidth%" equ "" ( echo line: %%F set screenwidth=%%F echo var: %screenwidth% set screenwidth=%screenwidth:~12% ) ) 我得到正确的输出,因为行被打印的第一个echo ,但由于某种原因,第二个echo输出什么都没有。 […]

在Windows 8.1中,diskpartbatch file脚本不在同一个文件夹中工作

我做了一个batch file隐藏一个卷(驱动器)。 当我运行它在我的桌面上(Windows 7的)它从同一文件夹(在同一文件夹中的batch file和diskpart脚本),但在我的笔记本电脑(Windows 8.1)不起作用从同一文件夹。 但是当我把脚本文件放在“System32”文件夹中时,它就起作用了。 我该如何解决这个问题? batch file @echo on echo to hide type y or to unhide type n set /p comm=hide or unhide if not y==%comm% goto unhide :hide diskpart /s hide.txt pause exit :unhide diskpart /s unhide.txt pause hide.txt sel vol 7 remove letter H: exit unhide.txt sel vol 7 […]