Articles of batch file

cmd编程中的速度和时间问题

最近有一个关于将用户预定义的文件types扩展名的许多文件从一个文件夹移动到许多不同文件夹的问题,这些文件夹是在文件名称内的密钥string(YEAR)上立即创build的。 另外,移动到新创build的文件夹时,应保存文件,而不使用用户预定义的文件types扩展名(文件名2016.myextension.txt >文件名2016.txt )。 我一直对这个问题感兴趣,所以我创build了简单的cmd程序。 有两个问题: 程序正常工作,但速度太慢。 有什么办法让它跑得更快? for /l %%A in (1900,1,2099)循环中的for /l %%A in (1900,1,2099)的ECHO %TIME%命令查看程序代码的末尾,始终返回相同的时间值。 有什么办法可以使它恢复正确的当前系统时间? 这里是程序代码: rem program start rem rem use double % for cmd line parameters when generating .bat rem use single % for cmd line parameters for direct cmd execution rem use ^ for cmd line brake rem […]

计数器不会在Windowsbatch file中用FOR循环中的IF语句递增

我在创build的batch file中有一个简单的FOR循环,这并不像我期望的那样工作。 FOR循环遍历一个文本文件的行,并且在每次迭代中,我使用一个IF语句对当前行进行快速比较,如果计算结果为true,则执行一些工作。 这里是代码: SETLOCAL ENABLEDELAYEDEXPANSION set /a sitecounts=1 set /a input=34 FOR /F "tokens=1,2 delims=^/" %%G IN (file.txt) DO ( IF %sitecounts% == %input% (set /a selectedsitepath=%logfilepath%W3SVC%%H) set /a sitecounts=!sitecounts!+1 echo !sitecounts! ) 我遇到一个奇怪的问题,其中sitecountsvariables(我的计数器)实际上递增正确与每个循环(我通过回应计数与最后一个语句certificate这一点) – 但在下一次迭代%sitecounts%仍然显示它的值是'1',这是初始值。 如果我将代码更改为: IF !sitecounts! == … … IF语句似乎将该值视为纯文本! 我已经设置ENABLEDELAYEDEXPANSION来处理循环内的variables,但不知道下一步该怎么做。 任何帮助表示赞赏!

Windows批次事件提醒第二天

如何编写一个批处理脚本,它将在此格式的Dates.txt文件中进行search: EventName1:dd.mm.yyyy EventName2:dd.mm.yyyy … EventNameN:dd.mm.yyyy 对于明天的事件,如果发现,通知用户关于他们? 我能够为今天的活动写一个脚本: @echo off setlocal disableDelayedExpansion IF NOT EXIST Dates.txt GOTO not_found_dates for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j set ldt=%ldt:~6,2%.%ldt:~4,2%.%ldt:~0,4% echo Today: %ldt% for /f "tokens=1,2 delims=:" %%A in (Dates.txt) do ( if "%%B"==" %ldt%" echo You have […]

如何在Windows中通过batch file在registry中设置值?

我将为Windowsregistry设置一个值。 我想为registry中的StupidMS设置variablesshit ,但结果是错误的。 以下是我的代码。 set stupidMS=shit echo %stupidMS% reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "StupidMS" /t REG_SZ /d ^%stupidMS^% 我认为这个问题是^%stupidMS ^% ,但我完全不知道如何纠正它。

创build一个可以处理拖放多个文件的batch file

我试图通过batch file运行它们来处理几个文件。 我希望batch file能够获取所有文件(又称转储;或拖放)并处理它们。 目前我可以使用下面的批处理命令分别处理这些文件: "C:\Program Files\Wireshark\tshark.exe" -r %1 -Y "filter" -o "uat:user_dlts:\"User 8 (DLT=155)\",\"pxt\",\"0\",\"\",\"0\",\"\"" -o "gui.column.format:\"Info\",\"%%i\""> %1".filter.txt" 我正在做同样的事情,但能够简单地将文件拖放到batch file进行处理。 对于那些对上述batch file感到困惑的人: -r读取input文件,其全文件地址(包括扩展名)被%1捕获 -Y过滤掉拖放文件的某些部分 -o为运行可执行文件设置首选项(由“”s中的东西定义):tshark.exe – >将结果redirect到stdout – %1“.filter.txt”将结果输出到一个名为“draggedfilename.filter.txt”的新文件 请不要在其他地方使用此代码,除非帮助我使用此代码(由于它正在使用的应用程序)。 为了保密,我在这个版本的代码中改了几个标志。 让我知道如果你有任何问题!

TortoiseGit Git从脚本提交消息

我在TortoiseGit中生成了Start Commit Hook,它调用了StartComit.bat文件,并且启用了“等待脚本完成”选项。 bat文件的内容是 echo "Some more info…." >> %1 在“提交”对话框打开之前脚本正在调用,但它不起作用,我没有在“消息”字段中获取任何文本。 我在这里做错了什么? 编辑:只是为了让问题更清楚我试图暂停这个接受的答案https://stackoverflow.com/a/3967136/596935并做类似的事情。

是否可以使用batch file将文件发送到打印机?

如何使用batch file将文本文件或.doc或类似文件发送到通过USB端口插入计算机的打印机?

暂停命令不能在.bat脚本中工作

batch file只有两行: c:\program.exe … pause 但“程序”完成后暂停不会运行…我没有看到“按任何键信息”:( 如果我在第一行暂停,那么它神奇地工作。

为多个CMD制作一个batch file

可以说我有2个服务,我想开始和一个属性文件。 -svc1.cmd -svc2.bat -svc2prop.properties 让我们把C:\ program1 \ bin \和C:\ program2 \ bin \ C目录作为C:\ program2 \ config \ 然后我试图这样做: start cmd /k call C:\program1\bin\svc1.cmd start cmd /k cd C:\program2\ .\bin\svc2.bat .\config\svc2prop.properties 我可以通过打开本地CMD分别启动它们。 问题是,如果我在目录C:\ program2 \中,我可以打开一个本地CMD并运行这个语句没有问题“。\ bin \ svc2.bat。\ config \ svc2prop.properties” 但是我想创build一个batch file:首先,打开一个新的cmd并启动svc1.cmd,然后打开另一个cmd,并转到C:\ program2 \并运行“”。\ bin \ svc2.bat。 \ config \ svc2prop.properties“”语句…但由于某种原因,它不工作。 任何可能的解决

在目录中search特定string的XML文件,然后使用bat脚本复制操作

我是批处理脚本的新手,所以如果可能的话,我会感激评论的解决scheme。 我正在寻找一个蝙蝠脚本,将包含XML文件包含“xyz”string(在他们,而不是在他们的文件名)的文件中search设置目录c:\。 一旦find带有“xyz”的文件,应该将其复制到另一个位置c:\ out。 为了说明的目的,所有的XML文件具有相同的结构,并且string(文件应该被search)在标签内。