Articles of batch file

Linux的bash脚本循环

我有1.txt 2.txt和script.php 1.txt: a b c d 2.txt www rrr ttt yyy 我希望bash文件在Linux下执行这个命令: ./script.php -na -j www>>n_j.txt ./script.php -na -j rrr>>n_j.txt ./script.php -na -j ttt>>n_j.txt ./script.php -na -j yyy>>n_j.txt ./script.php -nb -j www>>n_j.txt ./script.php -nb -j rrr>>n_j.txt ./script.php -nb -j ttt>>n_j.txt . . 我有一个蝙蝠代码与wondows cmd工作..我想要一个代码,它可以使用Linux命令行 @ECHO OFF FOR /F "tokens=1 delims= " %%I IN (1.txt) […]

顶部命令第一次迭代总是返回相同的结果

当运行top -b -n 1时,该命令总是返回相同的CPU值。 考虑连续5次以下的testing: [user@server ~]$ top -b -n 5 -d.2 | grep "Cpu(s)" Cpu(s): 18.5%us, 10.0%sy, 0.0%ni, 67.0%id, 4.2%wa, 0.0%hi, 0.2%si, 0.1%st Cpu(s): 39.8%us, 27.7%sy, 0.0%ni, 31.3%id, 0.0%wa, 0.0%hi, 1.2%si, 0.0%st Cpu(s): 39.0%us, 35.4%sy, 0.0%ni, 23.2%id, 0.0%wa, 0.0%hi, 1.2%si, 1.2%st Cpu(s): 41.2%us, 34.1%sy, 0.0%ni, 15.3%id, 1.2%wa, 0.0%hi, 2.4%si, 5.9%st Cpu(s): 59.0%us, 30.1%sy, 0.0%ni, […]

在Windows Batch中嵌套循环中的“继续”等效命令

我有一个batch file,其中包含嵌套循环与continue -like命令: for %%i in (1, 2, 4, 8, 16, 32, 64, 128, 256) do ( for %%j in (1, 2, 4, 8, 16, 32, 64, 128, 256) do ( if %%i gtr %%j goto CONTINUE test.exe 0 %%i %%j 100000 > "%%i_%%j".txt :CONTINUE rem ) ) 但是, if语句第一次是真的,它不会进一步迭代。 我只能得到文本文件高达1_256.txt 。 所以看起来goto CONTINUE有问题。 我的batch […]

在winscp中执行batch file时出现问题

我是Winscp的新手,在执行batch file时遇到问题。 情况是这样的: 我有一个batch fileA,两个文件夹(向上B和向下文件夹C),一些文本文件在文件夹D中,一个文本文件E(不同于D中的文件)和一个ppk文件F.所有这些东西都在一个只有文件夹。 batch fileA有一个包含文本的脚本(脚本如下所示)。 如果该文本内容为真(意味着如果该文本(文本内容与E相关,即,如果文本文件E被执行)被执行),则只有在向上文件夹B中的文件向下移动到文件夹C. batch fileA中的脚本是: C:\somefolder\WinSCP3.exe /console /script=E.txt /log=session.log if errorlevel 1 goto error xcopy C:\somefolder\up\*.* C:\somefolder\down\ /y del C:\somefolder\up\*.* /Q :error echo Upload failed, keeping local files 而文本文件E中的内容是: option batch abort option confirm off open @test.com change remote directory cd \somedirectory option transfer binary put C:\somefolder\up\*.* close exit 我不知道为什么从up文件夹中的文件没有移动到down文件夹。 […]

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并做类似的事情。