起因:
由于 ABQ 的 license 存在一些问题,几年前遇到过 “只要开机自动启动 server 就导致软件无法打开” 的麻烦,后来就一直是手动打开的,但是问题又来了,有时候电脑个把月不关机,也记不清楚是不是已经启动过了 server,于是乎我就在 server 的 bat 里面写上了一句
@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat" intel64 vs2013
@echo off
"C:\SIMULIA\Abaqus\6.13-4\code\bin\abq6134.exe" %*
rem Write info to file
set d=%date:~0,10%
set t=%time:~0,8%
echo %d% %t%>C:\Users\DELL\Desktop\DS\Server_has_been_started.o
rem 之后的都是我写上去的,一旦启动了server,就生成一个文件 Server_has_been_started.o
,内容是启动时间。这样我就知道是否已经启动了server (并且还有一个不会去关心的问题:何时启动了 server)
问题总是一堆又一堆,这个文件最好还是每次关机时候自动删除吧,那么如何实现自动删除呢?
我想到的是再写一个 bat,删除指定文件
echo off
set cFileName="Server_has_been_started.o"
if exist %cFileName% del %cFileName%
现在的任务很清楚了:如何在关机时候自动执行这个脚本?
使用 组策略: gpedit.msc
注意不要使用 “任务计划程序”, 这个是没有关机动作的。
![](https://img.haomeiwen.com/i1957089/af2f5d119547ddd6.gif)
![](https://img.haomeiwen.com/i1957089/e128e86ed35d32a2.png)
然而现实是上面这个关机脚本并不会执行,改成这样子的才可以
echo off
set cFileName="C:\Users\DELL\Desktop\DS\Server_has_been_started.o"
if exist %cFileName% del %cFileName%
也就是说说必须要带上路径才可以,如果不带路径的话,仅仅是我们主动运行的时候可以执行。这个我目前不清楚为什么,有懂得麻烦告诉我,谢谢。
问题解决,感谢 Fcode 群水神
自动运行时候的“当前目录”不是 .o文件所在的目录
网友评论