Articles of batch file

创build一个batch file来识别活动的Internet连接

我试图写一个batch file,这将允许用户select他们的活动Internet连接,如果从netsh命令生成的列表中有多个,然后更改DNS设置。 然而,我不知道如何使用select命令时,已知的选项数量,直到脚本执行。 没有使用数组,我试图创build一个stringvariables“select”来容纳代表数字select的string,并将其传递给select命令,但我不能让它工作。 我不禁感到必须有一个更简单的方法来做到这一点,但是我的研究却没有向我certificate这一点。 任何帮助将受到感谢。 @echo off setlocal Set active=0 Set choices=1 set ConnnectedNet= FOR /F "tokens=2,3* " %%j in ('netsh interface show interface ^| find "Connected"') do Set /A active+=1 FOR /L %%G IN (2,1,%active%) do (set choices=%choices%%%G) if %active% lss 2 goto :single if %active% gtr 1 goto :multiple :single FOR /F […]

快速命令或批处理脚本来确定Windows和Office版本

我需要对300多台既不在同一个networking,也不属于同一个公司的计算机进行软件审计。 有没有一个命令或小程序(可以运行没有安装),我可以通过电子邮件发送给最终用户运行,将输出MS Windows和MS Office版本?

如何启动系统“哔”,从内置PC扬声器,使用batch file?

我在交互模式下编写了一个批处理脚本,用于完成一些任务。 有时,这些任务需要很长时间才能完成,然后批处理会询问用户是要继续下一个任务,还是回到批次主菜单或者是, 现在,我想要做的就是添加一个“交互式报警”命令,这个命令听起来像是一个小小的哔哔声(例如,当我们打开我们的电脑时),提醒批量用户提出新的问题。 我不知道这是否可行,但对我来说最重要的是,不要使用像WMP这样的GUI应用程序..我只是想从背景中做到这一点,即使如果必须发出嘟嘟声从免费的扬声器,或通过使用第三方CLI应用程序(顺便说一下,我Cygwin安装在我的Win7-x64)。 请注意,我会在交互式提问之前加上这个警报命令,等待用户的回答进入下一个阶段,所以我不能完成这个批处理,通过发出一个真实的错误嘟嘟声! 那么,有人请告诉我该怎么做? 感谢您的帮助…谢谢:)

batch file运行ping命令并输出到文本

我有两个batch fileping文本文件servers.txt所有IP。 其中一个batch fileping服务器,并在CMD窗口中显示结果。 另一个batch fileping服务器,并在CMD窗口上显示任何内容,并在完成对服务器的所有ping之后,将它们放入OnlineServers.txt文件中。 我想混这个东西 我想要batch file运行ping并在屏幕上显示它们,并将所有联机服务器放在OnlineServers.txt 。 这里是第一个batch file,在CMD窗口上显示ping而不输出到文本文件: @echo off for /f "delims=" %%a in (servers.txt) do ping -n 1 %%a >nul && (echo %%a Online) || (echo %%a Offline) echo. pause 这里是第二个batch file,它在CMD窗口上什么也没有显示,只有在ping所有服务器之后才输出文件: @echo off setlocal EnableDelayedExpansion (for /F "delims=" %%a in (servers.txt) do ( ping -n 1 "%%a" > […]

将string转换为batch file中的整数

我有一个从文件读取的variables: %var%=13,145 我想将这个值添加到另一个值: set /a %var%=%var%+5 但结果是13+5 ,而不是13145+5 。 我怎样才能从我的string中删除这个“,”?

下载大量的小文件

我需要一种有效的方法来从文本文件中的URL列表下载大量(百万)小文件。 我想用新名称(从另一个文本文件或任何地方)保存文件,因为URL很长,dynamic生成乱码,并会导致最大文件名长度等问题。 我第一次尝试wget,但受限于您可以指定一个文本文件中的URL列表,例如: wget.exe -i myURLlist.txt 或用一个新名称重命名单个下载的文件,例如: wget.exe -O myfilename1.jpg http://www.foo.com/longgibberish976876….2131.jpg 但不是两个。 因此,我的脚本必须为每个文件单独执行wget(使用第二种方法)。 由于每次重新启动TCP连接和其他开销(如果您在文本文件中传递URL列表,wget尝试重新使用连接,但是我不能指定文件名),这是非常慢的。 然后我尝试了curl,它可以让你通过命令行parameter passing多个URL和文件名。 例如: curl.exe -o myfilename1.jpg http://www.foo.com/longgibberish976876….2131.jpg -o myfilename2.jpg http://www.foo.com/longgibberish324….32432.jpg -o ….. 这是一个速度的改善,因为curl会尝试为所有传递给它的URL重用相同的连接。 但是,在开始跳过文件之前,我仅限于大约20个URL的批处理。 我没有确认为什么发生这种情况,但是怀疑命令行中的最大长度可能已经超过了。 在任何情况下,这当然不会扩展到一百万左右的文件。 我没有findselect传递一个文本文件curl的方式,你可以用wget。 剩下哪些选项? 有没有我已经试过的2个程序的一些语法,我不知道,还是我需要一些其他的工具?

检测CMD中的可移动驱动器号

我试图写一个脚本,它会检测到我的USB可移动驱动器名为“UUI”的信,然后创build它的文件夹。 我已经为CMD写了几个命令,它们在单独运行时工作。 但是,当我把它们放入一个bat文件时,我总会遇到一些错误。 以下是bat文件中的命令: for /F "tokens=1 delims= " %i in ('WMIC logicaldisk where "DriveType=2" list brief ^| c:\windows\system32\find.exe "UUI"') do (echo %i > drive.txt) set /p RemovableDriveLetter2= < drive.txt del /F /Q drive.txt set RemovableDriveLetter=%RemovableDriveLetter2:~0,1% %RemovableDriveLetter%: md MyNewFolder cd MyNewFolder 当我去cmd.exe并通过调用“myScript.bat”或“call myScript.bat”运行该文件时,出现错误: C:\用户\ UUI \桌面> myScript.bat \ windows \ system32 \ find.exe在这个时候是意外的。 C:\ Users […]

批量DOS复制文件的最后一行限制65 536个字符

我有一个沉重的XML文件1Go有以下结构: <?xml version='1.0' encoding='windows-1252'?> <ext:BookingExtraction> <Booking><Code>2016Z00258</Code><Advertiser><Code>00123</Code<Name>LOUIS VUITTON</Name></Advertiser></Booking> <Booking><Code>2016Z00259</Code><Advertiser><Code>00124</Code<Name>Adidas</Name></Advertiser></Booking> </ext:BookingExtraction> 由于结构非常简单,因此我的目标是将XML文件的最后150行复制到新文件中,并在第一行中添加开始标记以形成格式良好的XML。 该algorithm工作正常,但有超过65 536个字符的行被分成几行。 我读了DOS限制每行字符数为65 536.这就是为什么在这个65 536个字符之后添加一个回车符。 结果是最后的XML没有正确的形成,因为在行的中间input了马车。 例如: <ext:BookingExtraction> <Booking><Code>2016Z00258</Code><Advertiser><Code>00123</Code><Name>LOUIS VUIT TON</Name></Advertiser></Booking> </ext:BookingExtraction> 我试图删除字符进入,但它不起作用。 你有什么想法我怎么能解决这个问题? `@echo off setLocal EnableDelayedExpansion ::Get XML file for /r %%a in (extractedBookings_BookingWithoutUnitsContent_PRD_*.xml) do ( ::echo "%%~dpa" and full path is "%%~nxa" set fileName="%%~nxa" ) ::Get the 150 last line of the […]

使用getRuntime().exe(cmd)更改registry项的值不会更改registry值,即使操作已成功结束

我试图从我的Java应用程序更改registry值。 我使用这个命令: LoudnessEqualizationToggle.execCmdNoReturn("reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\MMDevices\\Audio\\Render\\"+guid+"\\FxProperties\"" + " /f /v \"{E0A941A0-88A2-4df5-8D6B-DD20BB06E8FB},4\" /t REG_DWORD /d \""+((activateLEOnKey) ? 1 : 0)+"\""); 凡guid是{d348b8e8-3118-4a9c-9b43-422647b555ca} activateLEOnKey是布尔值 execCmdNoReturn函数: public static final void execCmdNoReturn(String cmd) { try { Scanner s = new Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A"); System.out.println("Command:"+cmd); System.out.println("Printing executed data"); while (s.hasNext()) { System.out.println(s.next()); } } catch (IOException ex) { Logger.getLogger(LoudnessEqualizationToggle.class.getName()).log(Level.SEVERE, null, ex); } } 一切正常。 […]

UUID被存储在文件中

我正在尝试获取系统的UUID并将其存储在一个文件中。 使用命令wmic csproduct get UUID我得到的输出文件为(UUID一些空格然后值), ie UUID 4C4C4544-0031-5910-8048-B1C04F565331 。 但我需要在我的输出文件中的值( 4C4C4544-0031-5910-8048-B1C04F565331 )。