Articles of batch file

Windows7批处理,如何在第一个For循环之后打破

我正在写一个简单的脚本来检索作为IP提供的本地主机地址。 为了得到我的IPv4地址(Win7),我写了简单的FOR循环,但是结果是我从最后一个循环而不是第一个 循环获得了IP。 这里是批处理代码: cls for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do ( set ip=%%b ) set ip=%ip:~1% echo %ip% 这返回: (set ip= 192.168.1.101 ) (set ip= 192.168.88.1 ) (set ip= 192.168.137.1 ) set ip=192.168.137.1 echo 192.168.137.1 192.168.137.1 我需要的是第一个循环的结果: 192.168.1.101

将多行环境variables拆分为多行

我有以下问题:我在Jenkins服务器上执行一个windowsbatch file,并且必须将一个多行环境variables(将一个Jenkins参数设置为vias)分成单行。 每行都是另一个程序的参数列表的一部分: jenkins文本框参数: -foo 224 -bar "Some parameter with spaces" -foo 225 -bar "another param" jenkins应该会导致下面的电话: myprog.exe -baz 0 -meow -foo 224 -bar "Some parameter with spaces" myprog.exe -baz 0 -meow -foo 225 -bar "another param" 我试图用for /F分割它,但是没有成功。 search没有什么有用的东西,我试过的任何东西给了我语法错误或只是打印第一行。 这是我尝试的事情之一: for /f "tokens=* delims= " %%f in ("%varname%") do 给我的语法错误,因为该variables已经包含引号。 echo %varname% 只输出variables的第一行。 有任何想法吗?

batch file随机删除文本文件的一半行?

我需要一种方法来使用批处理来查看文本文件的每一行,并删除该文本文件中的一半行,并随机select要删除的行。 这是模拟D&D游戏中的比赛。 我所需要的只是一个方法来榨取每场比赛的冠军。 我可以很容易地创build一个batch file,复制文本文件,并为每一轮重命名,但是这是减less了一半,我不擅长。 编辑:我想要一个batch file来做到这一点,因为它会花费很多时间在表上手动。 此外,游戏中的游戏非常古老,angular色扮演重点突出,所以在锦标赛中有一个NPC名单的实际列表,个人电脑会想知道他们的朋友们在比赛中的performance。

从csv文件读取并根据第一列值提取某些数据列

这是我的第一批程序,我一直在网上search,但仍然在努力写出一个解决scheme。 我有以下的CSV文件: "RH",2013/06/15 02:14:58 -0400,"X","LQ3SUEEWPWKL6",005, "FH",01 "SH",2013/06/14 00:00:00 -0400,2013/06/14 23:59:59 -0400,"LQ3SUEEWPWKL6","" "CH","TransactionID","InvoiceID", …… 我试图写一个简单的程序来执行以下操作: 如果column1 =“RH”,则提取column2的值(2013/06/15 02:14:58 -0400) 如果column1 =“SH”,则提取第4列值(LQ3SUEEWPWKL6) 和pipe道输出到一个文件。 这是我的代码到目前为止,但如果条件不适合我 @echo off :: Set input file in variable ::Set _InputFile=%1 :: Store input line into different variables FOR /F "tokens=1-18* delims=," %%A IN (%_InputFile%) DO ( Set _var1=%%A Set _var2=%%B Set _var3=%%C Set […]

用Windowsbatch file在文本文件中添加新行

我有一个文本文件,其中有超过200行,我只是想在第4行之前添加一个新行。我正在使用Windows XP。 input前的示例文本文件: header 1 header 2 header 3 details 1 details 2 输出后: header 1 header 2 header 3 <—– This is new line —-> details 1 details 2

比较两个文件夹及其子文件夹batch file

我有两个文件夹包含所有相同的文件和子文件夹,但每个文件内的文字可能已经改变。 我想写一个batch file,将search每个文件,并寻找任何差异。 什么是我想要做的最好的工具?

如何在Windowsbatch file中replacevariables内容

我正在写一个简单的脚本来replace其他文本的环境variables中的文本。 我得到的麻烦是取代或replace的文本从其他variables拉 SET a=The fat cat ECHO %a% REM Results in 'The fat cat' ECHO %a:fat=thin% REM Results in 'The thin cat' 工作正常(输出是“肥猫”和“瘦猫” 但是,如果“胖”或“瘦”是variables,它不起作用 SET b=fat ECHO %a:%c%=thin% REM _Should_ give 'The thin cat'. REM _Actually_ gives '%a:fat=thin%' (the %c% is evaluated, but no further). REM using delayed evaluation doesn't make any difference either ECHO […]

有没有可能从batch file启动文件的默认编辑器?

背景: 我们可以使用PATHEXT和Windows文件关联的组合来执行命令提示符等同于右键单击资源pipe理器中的文件并单击打开 ,例如: C:\code\python> echo print "Hello, StackOverflow!" >hello.py C:\code\python> hello Hello, StackOverflow! 同样,我可以通过键入以下命令启动Photoshop : C:\art\source> StackOverflowLogo.PDF 实际问题: 我需要相当于在资源pipe理器中右键单击该文件的命令提示符,然后select编辑 。 用我上面的hello(.py),可能会引起Python的空闲编辑器。 但是,我需要一个通用的解决scheme,使用操作系统级别的关联作为文件types。 我无法承担。 我想要做的最简单的例子就是这个假设的EDIT.BAT文件,它除了启动给定文件名的编辑器外什么也不做。 @InsertMagic /Here %1 谢谢! (我希望。) Aaand …解决scheme: Alex K.build议Powershell,这当然是一个很好的解决scheme。 所以要写我的EDIT.BAT上面,我可以这样做: @powershell -command "start -verb edit '%1'" (这有点幼稚,因为有潜在的引用问题,但你明白了。) 欢呼快速的答案。 🙂

批处理脚本设置命令不能正常工作

我想从文件中读取第一行,并将其设置为环境variables。 以下是我使用的variables @echo off if EXIST "test.dat" ( set JAVA_HOME_PATH= set JAVA_PATH= set /p JAVA_HOME_PATH=<test.dat echo %JAVA_HOME_PATH% set JAVA_PATH=%JAVA_HOME_PATH%\bin\java echo %JAVA_PATH% ) 假设test.dat包含JDK的path,并且它是c:\ JDK1.6 我第一次运行它 ECHO is off. ECHO is off. 再次运行我得到 c:\JDK1.6 \bin\java 并再次运行我得到 c:\JDK1.6 c:\JDK1.6\bin\java 我dint更改test.dat文件。 但为什么会这样呢? 只有当我第三次运行所有的variables设置? 看起来很奇怪。 我在这做什么事吗? 请帮我一下

如何批量列出具有特定扩展名(.json,.txt等)的文件?

我已经试过这个代码,但是当我尝试运行它时,当我进入那个部分时,cmd窗口closures。 应该在该目录中列出带有.json扩展名的文件。 可能是代码有问题吗? :TrackPrevious cd /D "%USERPROFILE%\Desktop\" echo.> "%USERPROFILE%\Documents\fileslist.txt" for %%G IN ('dir /ad /b /s') do echo %%~nxg > fileslist.txt ) for /F "delims=" %%G IN (fileslist.txt) do ( set DeviceList=%%G ) echo %Devicelist%`