计算运行BATCH文件的次数

时间:2015-08-06 10:05:30

标签: windows batch-file cmd dos

这是我工具的最后一个问题。

我需要能够计算它运行的次数。它必须远程存储这些信息,这必须能够在我的批处理脚本中运行。(没有其他语言)

它也将在约30台其他机器上运行。有没有人对我如何运行这个有任何想法?

我想也许我可以启动一个TELNET来定位服务器,他们的服务器会计算它在某个端口上接收连接的时间。

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

最简单的方法是将执行pc / user / date / time简单地记录到远程PC:

echo %ComputerName% %UserName% %date% %time% >>\\counting_pc\share\run.log
run_my_tool

存在对文件进行并发写访问的风险,可以通过简单的互斥文件来缓解:

set "log=\\counting_pc\share\run.log"
set "mutex=\\counting_pc\share\mutex.log"

:: run_my_tool in current console
start /b run_my_tool

for /L %%a in (1,1,10) do if not exist "%mutex%" (goto log) else (timeout 1 >nul)

:log
echo >"%mutex%"
echo %ComputerName% %UserName% %date% %time% >>"%log%"
del /q "%mutex%"

要计算数字,只需在记事本中打开日志文件并查看它有多少行,或者您可以按计算机名称,用户名,时间和日期对其进行过滤。

计入批处理文件:

  • 整体:for /f "tokens=2 delims=:" %%a in ('find /c /v "" run.log') do echo %%a
  • 由用户:for /f "tokens=2 delims=:" %%a in ('find /c " someuser " run.log') do echo %%a
  • by PC:for /f "tokens=2 delims=:" %%a in ('find /c "somepc " run.log') do echo %%a

这是一个不是100%防止故障的例子,但展示了这个想法。

答案 1 :(得分:0)

我找到了解决PSEXEC问题的方法。

我远程进入服务器进行日志记录,更新增量为+1的txt文件。

然后我有另一批不断监视这些日志文件的批处理。

感兴趣的任何人的代码:

psexec.exe \\xx.xx.85.242 /accepteula -u USERNAME-p PASSWORD"C:\DIRECTORY\GOES\HERE.bat"

/ accepteula使得用户的交互更少,它同意使用政策。

感谢您的回复!

答案 2 :(得分:0)

您可以测量“正在打开的BATCH文件”的计数数量,例如=

Set Q=%temp%\1.kj
Echo :>>%Q%
FOR /F "tokens=1,2* delims=:  " %%i in ('find /v /c "*" %Q%') do (Set C=%%k)
IF %C% GEQ 5 & Del "%Q%" & ::Do a Something ...