Command line 为第一次执行唯一标识windows命令输出

Command line 为第一次执行唯一标识windows命令输出,command-line,command,command-prompt,Command Line,Command,Command Prompt,我每天从第三方工具每隔1小时执行一次命令。 我需要确定命令是第一次执行的。 好像它是第一次执行,我需要转到任务“A”,如果不是,则转到任务“B” e、 g。 命令: 净启动 输出 第一次执行 [要标识为这是第一次输出的一些标志] 试验 下一次执行 试验 因此,在本例中,我可以确定它是否第一次执行。@ECHO OFF SETLOCAL ::主线-先测试/不先测试 电话:testfirst### 如果定义为alreadyrun(回显已运行),则为ELSE(回显首次运行) 电话:testfirst$$

我每天从第三方工具每隔1小时执行一次命令。 我需要确定命令是第一次执行的。 好像它是第一次执行,我需要转到任务“A”,如果不是,则转到任务“B”

e、 g。 命令:

净启动

输出

第一次执行

[要标识为这是第一次输出的一些标志]

试验

下一次执行

试验

因此,在本例中,我可以确定它是否第一次执行。

@ECHO OFF
SETLOCAL
::主线-先测试/不先测试
电话:testfirst###
如果定义为alreadyrun(回显已运行),则为ELSE(回显首次运行)
电话:testfirst$$$
如果定义了alreadyrun(ECHO$$$已运行),则为ELSE(ECHO$$$首次运行)
电话:testfirst###
如果定义为alreadyrun(回显已运行),则为ELSE(回显首次运行)
电话:testfirst$$$
如果定义了alreadyrun(ECHO$$$已运行),则为ELSE(ECHO$$$首次运行)
后藤:eof
:testfirst
设置“targetdir=U:\destdir”
设置“alreadyrun=%date://=-%”
如果存在“%targetdir%\%alreadyrun%。%1”转到:eof
删除“%targetdir%\*。%1”2>NUL>NUL
回显,>%targetdir%\%alreadyrun%。%1
设置“alreadyrun=”
后藤:EOF
您需要更改
targetdir
的设置以适应您的环境<代码>U:\destdir适合我的系统

这里的想法是建立一个专门的目录来保存相关数据。我选择了
u:\destdir
,因为这对我来说很方便<代码>%temp%或
%tmp%
可能是一个明显的选择,但它们可以在任何时候任意清除,因此可能不是最好的选择

主线部分显示正在“运行”的两个不同过程,分别称为
###
$$
——名称并不重要,可以是您喜欢的任何名称。关键部分是
:testfirst
子例程(我将其作为内部子例程编写,但如果您愿意,可以是一个独立的批处理文件-只需将
调用:testfirst
更改为
调用testfirst

此例程将变量
alreadyrun
设置为当前日期,并将
/
字符转换为
-
,因为
/
不是有效的文件名字符

然后查看文件(转换日期)。%1是否存在于所选目录中(其中%1被替换为示例中提供的参数-
###
$$
)。如果是,只需终止例程并将
alreadyrun
设置为一个值即可返回

如果文件不存在,请从目录(昨天或之前创建的)中删除任何具有相同扩展名的文件(今天创建的)。######。然后删除环境变量
alreadyrun


然后,调用路由会将
alreayrun
视为未定义(尚未运行)或已定义(今天已运行),这将满足您的需要。

我需要一个单行命令