Articles of batch file

从MAC地址获取IP。 ARP – 一个不显示设备

我试图编写一个batch file,当它连接到networking(Tenda WiFi路由器)时,应该find我的Android手机的dynamic分配IP。 所以我正在尝试arp -a并search手机的MAC地址,以便从表中获取IP。 C:\Users\Leeroy>arp -a Interface: 192.168.0.100 — 0xb Internet Address Physical Address Type 192.168.0.1 c8-3a-35-35-f6-68 dynamic 192.168.0.255 ff-ff-ff-ff-ff-ff static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static 问题是它不出现在表格中! 我尝试ping 192.168.0.255但它仍然不显示。 我尝试从手机的浏览器请求192.168.0.100(我的台式电脑的IP),这足以把手机放在雷达上。 但是我没有select手动做,每次我想它出现在ARP表。 我如何让Android手机出现在ARP表中(除了连​​接到WiFi之外,没有做任何事情)? 解决:解决与平。 这不会超过一两秒钟。 编辑2:更新一些。 这是最后的batch file: @echo off :top :: Loop through arp […]

Windowsbatch file从子文件夹复制到一个文件夹

我曾尝试制作批处理脚本,将位于D:\ images(随机命名的子文件夹)中的所有* .tif文件复制到d:\ all。 xcopy D:\Downloads\*.TIF D:\temp\ /s 作品,但它复制与所有文件夹树。 我试图使用其他键,但它不工作。 感谢帮助!

如何在Windowsbatch file中提取版本号?

我需要从string中提取主要,次要和修订号码,并实现这一点我试图分割一个batch file中的string使用'。 字符作为分隔符。 例如:如果用户在命令提示符中input1.0.2 ,我应该能够提取 1 – 主要版本, 0 – 次要版本和 2 – 修订 我试图使用FOR命令来实现这一点,但只是没有通过。 任何人都可以帮助我的提取部分 @ECHO OFF & SETLOCAL set /p "ReleaseVersion=Please specify the software release version : " :nextVar for /F "tokens=1* delims=." %%a in ("%ReleaseVersion%") do ( set %%a set ReleaseVersion=%%b ) if defined ReleaseVersion goto nextVar @PAUSE

使用批备份registry

我有Windows 7的最终32位和和我需要一个批处理脚本,可以备份到一个.reg文件调用“registry备份”与batch file相同的目录中的任何一个可以帮助我find一个代码来做到这一点。

如何在batch file中使用嵌套的FOR循环

我有一些代码,我想用FOR循环来处理一组文件。 作为处理文件的一部分,有一个FOR /F循环来读取它,并根据文件名将数据追加到另一个文件中。 为了能够设置输出文件名我有延迟variables扩展设置。 这是代码应该看起来像我原本打算的那样: setlocal enabledelayedexpansion for %%f in (DataFolder\*.Ext) do ( set POI=%%~f set POI=!JbPOI:DataFolder\=! set POI=!JbPOI:.Ext=! for /f "tokens=1,2,3 delims=," %%a in ("%%~f") do ( set CX=%%a set CY=%%b set FN=%%c echo !FN!,9,!CX!,!CY! >> "DataFolder\!POI!.tmp" ) ) endlocal 此代码不起作用,因为variables%%a , %%b和%%c永远不会收到一个值, %%a始终与%%f具有相同的值。 我已经阅读了一些有关这个问题的文章,但不能从他们的工作中提取解决scheme。 我已经尝试了几件事,迄今为止没有工作… 添加一个虚拟的外部循环来显式地创buildvariables%%a到%%j 内部FOR循环取出,并使其成为一个子程序 内部FOR循环取出,并使其成为一个单独的batch file 任何人都可以告诉我,这可以 – 或必须 – […]

在Windows批处理中查找打开的进程

我试图编写循环的代码,并告诉某个进程是否被打开。 它应该是一个循环,如果过程被打开,它会实时显示我。 换句话说,程序打开时文本会改变,closures时会再次改变。 相反,我得到的是一个文本相同的洪水,它不显示下面的“回声”。 我试过这个: @echo off goto xera :start tasklist /FI "IMAGENAME eq notepad.exe" | find /I "notepad.exe" > nul IF %ERRORLEVEL% equ 0 ECHO is opened IF %ERRORLEVEL% equ 1 ECHO isnt opened :xera set /p "=Status: " <nul &call :start //the code got 'stuck' here ECHO Text 2 (doesnt show) pause>nul

如何使Windowsbatch file暂停时双击?

我写了一个batch file来自动化一些任务。 我可以从命令窗口运行它并运行并显示结果。 如果我从资源pipe理器中双击它,它会立即运行并终止,所以我看不到结果。 有没有办法让batch file窗口保持打开状态,直到我通过双击图标启动它为止。 当我从命令行调用一个batch file时,我不想传递一个/ nopause参数。 我想要一个解决scheme,我可以使用batch file,而不必做任何特别的事情? 谢谢。 注意我不希望它从命令行运行时暂停! 我可以从另一个batch file中调用这个batch file来执行一个操作。 在这种情况下,我不能坐在那里继续打进。 理想情况下,如果我可以在batch file中放入一些代码,那么最好的办法是找出它的起始位置,然后暂停或不适当。

batch file:相对path错误,从当前目录向上一级

我是批处理脚本编程的新手。如果给出相对path,执行batch file时出现错误。 我有以下文件夹结构 Script folder – C:\batch\script\ServiceRegister.bat Bin path – C:\batch\bin\ERecruitGenerateReportsWindowsService.exe ServiceRegister.batbatch file – %windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe %~dp0%~1\bin\ERecruitGenerateReportsWindowsService.exe 当我执行ServiceRegister.bat文件时,我得到了错误: Exception occurred while initializing the installation: System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\batch\script\bin\ERecruitGenerateReportsWindowsService.exe' or one of its dependencies. The system cannot find the file specified. 我正在使用“%〜dp0%〜1”在目录中上一级,仍然获得当前path。 %~dp0%~1 – C:\batch\script\ 我需要C:\批处理\path。 我怎么能得到这条路? 它工作正常如果我给绝对path – %windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\batch\bin\ERecruitGenerateReportsWindowsService.exe

如何在Windowspath中使用卷标?

我想使用batch file从可移动驱动器复制文件,而不pipe其获取的驱动器号。 到目前为止,没有去。 似乎没有任何现成的命令或第三方命令行工具可以处理基于卷标的path。 我尝试了FreeFileSync,但它大批量工作,我需要在这里精确的文件操作。 此外,它不会删除,我需要移动文件从pendrive。 然而,我感兴趣的是发出一个无意义的命令,如… C:\> cd MYPENDRIVE: …在默认的错误信息中产生了相当有趣的一点: The filename, directory name, or volume label syntax is incorrect. ^^^^^^^^^^^^^^^^^^^ 如果这个消息是可信的,那么这意味着在那里放置一个卷标是一些正确的语法。 或者不在? 注意:如果需要的话,我可以写一个小的“getdriveletterforvolume”工具,但我宁愿不要重新发明轮子。 此外,在更长的batch file操作过程中,驱动器可能会被移除并replace为另一个驱动器,此时我需要停止操作,而不能在另一个驱动器上继续使用相同的驱动器号。 注2:使用\\?\ Volume {12345678 …..}是最后的手段,虽然它可以在一定程度上驯服,build立一个基本的batch file,如… SET PENDRIVE=\\?\Volume{949a764e-a2f0-11e3-b710-6cf04975450b} SET BACKUPDRIVE=\\?\Volume{e79091c4-5c2a-11e3-86f9-806e6f6e6963} if exist %PENDRIVE% { if exist %BACKUPDRIVE% { move %PENDRIVE%\*.* %BACKUPDRIVE% } } …但它很丑,不会让我做任何魔术,就像给两个pendrives同一个标签,让他们的行为相同。 我知道这不是一个普遍的情况,但是,嘿,为什么要限制一个select,哪里可以有一个现成的解决scheme呢? 编辑:进度。 我修改了子程序来返回一个值作为VOLUMEID: CALL :GetVolumeID […]

IF中的转义字符

我尝试了不同的变种(如setlocal EnableDelayedExpansion) – 但没有任何工作: echo off IF "%1"=="Debug^|Win32" set servicesConfig=Win2008.Debug echo Incorrect parametr %servicesConfig% pause > nul