Articles of batch file

如何迭代所有的registry项?

我正在尝试遍历所有的registry项以便查找(包含)并删除jre1.5.0_14值。 有没有办法做到这一点? 下面的代码只是在特定的键下findjre1.5.0_14! 我想要迭代所有的键。 顺便说一下,如果子句得到,如果它等于jre1.5.0_14,但它应该是如果它包含jre1.5.0_14。 提前致谢。 最好的祝福。 @echo off setlocal set KEY_NAME="HKEY_CURRENT_USER\Software\Microsoft\Notepad" set VALUE_NAME=jre1.5.0_14 FOR /F "skip=2 tokens=3" %%A IN ('REG QUERY %KEY_NAME%') DO if "%%A"=="%VALUE_NAME%" ( @echo %%A )

循环中的Windows批处理string操作

我试图在当前目录中创build目录“01”,“02”,“03”,…,“11”和“12”。 但是由于一个未知的原因,我的填充“0”的函数在for循环中不起作用。 @Echo on SET suffix=12 SET v=0%suffix% SET v=%v:~-2% echo %v% pause (SET suffix=12 SET v=0%suffix% SET v=%v:~-2% echo %v%) pause FOR /L %%q IN (9,1,11) DO ( SET suffixb=%%q SET w=0%suffixb% SET w=%w:~-2% echo %w% ) pause

批文件文件夹检测

是的,我知道在batch file中使用时,需要将%a加倍为%% a。 ;) 这有效,但不给我我想要的结果 – 这太多了.. FOR /f %a IN ('dir "D:\tomcat*" /ad /b ') DO FOR /f %b IN ('dir "D:\%a\webapps" /ad /b ') DO ECHO D:\%a\webapps\%b 我真正想做的是: FOR /f %a IN ('dir "D:\tomcat*\webapps" /ad /b ') DO ECHO %a 但是,我得到了由此产生的错误: 文件名,目录名称或卷标语法不正确。 我想这样做,因为我需要检测哪些文件夹中有tomcat,可能是以下任何一种: D:\tomcat D:\tomcat1 D:\tomcat2 D:\tomcat_1 etc. 谢谢!

调用没有CALL或START的批处理脚本

当我从批处理脚本CALL没有CALL或START批处理脚本时,这意味着什么? 例。 我有两个脚本a.bat和b.bat a.bat : echo I am A >> log b.bat echo end of A >> log b.bat : echo I am B >> log sleep 1 echo end of B >> log 执行a.bat后,我在日志中看到: I am AI am B end of B 消息“A的结尾”在哪里?

使用批量合并多个.csv文件时删除标头

我已经编写代码来将示例文件连接成单个文件,而不是每个文件的标题。 input文件: 文件1: [ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 00032116,21238,81790PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 文件2: [ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43 预期产出: [ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 00032116,21238,81790PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 实际输出: [ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 [ […]

删除不包含C $ D $ ADMIN $ …等的股票

在.bat中有一个脚本用于在win7上删除共享(没有pipe理员共享像ADMIN $等) @echo off (wmic path Win32_OperatingSystem get /value|find "ProductType=1" > nul) || (echo [e] Server OS & goto :eof) setlocal EnableDelayedExpansion for /f "delims=" %%a in ('wmic share get name /value ^| findstr /r /v "^$"') do ( for /f "tokens=2 delims==" %%b in ("%%a") do ( set VarAdminAllowed=NotAllowed for %%c in (ADMIN$ IPC$ […]

cygwin:无法确定挂载点

我一直在试图在Windows上运行.bat文件。 我试图build立Nss,但是当我运行.bat文件时,我收到以下内容: sh ../../build/cygwin-wrapper cl -Fonow.obj -c -W3 -nologo -GF -Gy -MD -O2 -UDEBUG -U_DEBUG -UWINNT -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_ VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" – DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_NONSTDC_NO_WARN INGS=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_AMD64_=1 -DFORCE_PR_LOG "/c/Pi dginBuild/win32/nss/nspr/WIN954.0_OPT.OBJ/config/../../config/now.c" /usr/bin/mount: /etc/fstab.conf: configuration file not found Can't find file Cannot determine cygwin mount points. Exiting make[2]: *** [now.obj] Error […]

批次:“rd”的退出代码也是错误的

我正在写一个批处理(.bat)脚本,我需要处理删除文件夹失败的情况。 我使用%errorlevel%捕获退出代码,但在rd命令的情况下,它似乎不工作: C:\Users\edo\Desktop>rd testdir Directory is not empty C:\Users\edo\Desktop>echo %errorlevel% 0 为什么? 你有什么build议? 谢谢!

万无一失的方法来检查Windowsbatch file中的非零(错误)返回码

介绍 在这里有很多的build议来处理batch file中的返回码(使用ERROLEVEL机制),例如 从batch file中获取错误代码 IF中的ERRORLEVEL 其中一些build议是, if errorlevel 1 goto somethingbad ,其他人则build议使用%ERRORLEVEL%variables,并使用== , EQU , LSS等。IF语句中似乎存在一些问题,所以鼓励delayedexpansion,但它似乎有自己的怪癖。 题 什么是一个万无一失的(即健壮的,所以它几乎可以在几乎任何返回代码的系统上工作)的方式来知道一个坏的( 非零 )代码是否已经被返回? 我的企图 对于基本的用法,以下似乎可以捕获任何非零返回码: if not errorlevel 0 ( echo error level was nonzero )

Windowsbatch file以回显特定的行号

所以对于我目前困境的第二部分,我有一个在c:\file_list.txt中的文件夹列表。 我需要能够基于行号来提取它们(呃,用一些mod来回显它们),因为这个批处理脚本被一个迭代的macros过程调用。 我通过行号作为参数。 @echo off setlocal enabledelayedexpansion set /a counter=0 set /a %%a = "" for /f "usebackq delims=" %%a in (c:\file_list.txt) do ( if "!counter!"=="%1" goto :printme & set /a counter+=1 ) :printme echo %%a 这给了我%a的输出。 卫生署! 所以,我试着回应!a! (结果: ECHO is off. )。 我试过回显%a (结果:a) 我觉得简单的做法是修改这里find的head.bat代码: Windows批处理命令(s)从文本文件中读取第一行 除了不是回应每一行 – 我只是回应find的最后一行。 不像人们想象的那么简单。 我注意到我的柜台由于某种原因停留在零。 我想知道,如果set /a […]