这是我工具的最后一个问题。
我需要能够计算它运行的次数。它必须远程存储这些信息,这必须能够在我的批处理脚本中运行。(没有其他语言)
它也将在约30台其他机器上运行。有没有人对我如何运行这个有任何想法?
我想也许我可以启动一个TELNET来定位服务器,他们的服务器会计算它在某个端口上接收连接的时间。
感谢任何帮助!
答案 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
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 ...