Batch file 锁定文件无法与windows.bat文件一起使用

Batch file 锁定文件无法与windows.bat文件一起使用,batch-file,lockfile,Batch File,Lockfile,我正在创建一个锁文件,以防止我的程序出现多个实例,如图所示 . 如果我从命令行运行我的程序,它工作正常,也就是说它启动我的程序并创建锁文件。当我尝试再次运行程序时,它会识别锁文件,并且不会启动另一个实例,它会将命令行参数传递给当前正在运行的进程。这就是我想要的 如果使用.bat文件,则第二次运行.bat文件时会收到此消息,该进程无法访问该文件,因为另一个进程正在使用该文件。那个消息不是我的程序发出的。程序未按预期运行。我觉得奇怪的是,我的程序开始尝试访问该文件,但我的打印语句都没有出现在日志

我正在创建一个锁文件,以防止我的程序出现多个实例,如图所示 .

如果我从命令行运行我的程序,它工作正常,也就是说它启动我的程序并创建锁文件。当我尝试再次运行程序时,它会识别锁文件,并且不会启动另一个实例,它会将命令行参数传递给当前正在运行的进程。这就是我想要的

如果使用.bat文件,则第二次运行.bat文件时会收到此消息,该进程无法访问该文件,因为另一个进程正在使用该文件。那个消息不是我的程序发出的。程序未按预期运行。我觉得奇怪的是,我的程序开始尝试访问该文件,但我的打印语句都没有出现在日志文件中。我有我的程序的日志文件,我从.bat文件中捕获标准输出

给你

echo "START" >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log
java -jar C:\Users\Joe\Documents\NetBeansProjects\MyProgram\target\MyProgram.jar %1  >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log 2>&1

echo "FINISH"  >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log

Windows正在生成消息

你为什么不使用

if not exist "lockfile" myapplication

在批处理中?

问题似乎与我使用的锁文件无关,而与我在批处理文件中写入的日志文件有关。
还不知道如何解决这个问题,但如果我从批处理文件中删除日志文件的写入,一切都会正常进行。

我需要传递现有的程序数据,我想也有办法解决这个问题,但我想了解发生了什么事您可以发布批处理文件吗?