Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在批处理中获得持久变量?_Batch File - Fatal编程技术网

Batch file 如何在批处理中获得持久变量?

Batch file 如何在批处理中获得持久变量?,batch-file,Batch File,我想知道如何使用批处理来获得一个持久变量,并将其部署在一个环境中,在这个环境中,我无法安装额外的软件,而不会产生很大的开销 我想检测它是否是第一次打开。如果是,它将首先将变量设置为,,然后运行一行设置的代码,然后将变量更改为打开。我有什么办法能做到这一点,还是不可能?恐怕我不明白你说的“原子”这个词是什么意思。。。但是,我认为下面的代码可以满足您的要求: @echo off setlocal call :InitAtomicVar if "%atomic%" equ "First" (

我想知道如何使用批处理来获得一个持久变量,并将其部署在一个环境中,在这个环境中,我无法安装额外的软件,而不会产生很大的开销


我想检测它是否是第一次打开。如果是,它将首先将变量设置为,然后运行一行设置的代码,然后将变量更改为打开。我有什么办法能做到这一点,还是不可能?

恐怕我不明白你说的“原子”这个词是什么意思。。。但是,我认为下面的代码可以满足您的要求:

@echo off
setlocal

call :InitAtomicVar
if "%atomic%" equ "First" (
   echo This is the first time this program run!
   echo set "atomic=Opened">> "%~F0"
)
echo Do the rest of program business here...
goto :EOF

rem The next lines *must be* the last lines in this file!
:InitAtomicVar
set "atomic=First"

在这种方法中,程序在第一次运行时向自身添加一行,这样下次运行时就不会重复初始化步骤。

我想你的意思是“持久”,而不是“原子”。编辑问题时,不需要编辑标记——编辑历史记录始终是公开的,因此,更重要的是要让编辑后的文章流畅,并尽可能清楚地了解被问到的问题,而不是让人们清楚地知道什么是在什么时候编辑的——任何想知道历史的人都可以阅读这些差异。(通常,在答案出现后,修改问题的含义是不受欢迎的,建议是提出一个新的问题,以避免使先前的答案无效——但由于你唯一正确地猜测了自己的真实意图,所以从“原子”改为“持久”是一个不错的选择)。好的,谢谢你,查尔斯。