批处理脚本 - 重定向 - 可能的文件锁定?

时间:2012-03-20 08:36:36

标签: file-io batch-file

我有一个批处理脚本,可以从文件夹中解压缩一些文件,并且可以多次调用此脚本。

为了解压缩,我使用unzip.exe并将其记录到日志文件中。例如,这是该日志文件的内容:

ECHO %DATE% - %TIME% >> Unzipped.log
ECHO ERROR LEVEL IS: !ERRORLEVEL! >> Unzipped.log
ECHO Error with file %1 >> Unzipped.log

我的问题是,是否可以在" Unzipped.log "上获取文件锁文件,如果我的批处理脚本在短时间内被多次调用?

我试图谷歌这个,但没有运气。我遇到问题的唯一时间是打开" Unzipped.log " Word中的文件,而不是我的批处理脚本不会写入它。当我在Notepad / Notepad ++中打开它时,写入日志文件没有问题。

1 个答案:

答案 0 :(得分:2)

是的,如果批处理过程尝试打开文件进行写入而另一个进程已打开以进行写入,则肯定会因文件锁定而导致失败。这两个进程可以在同一台机器上,如果您正在处理共享网络驱动器上的文件,它们可能位于不同的机器上。这两个过程都可以是批处理过程,但它们不一定是。

可以通过一些代码安全地从多个批处理进程“同时”写入日志文件,以管理文件的锁定。见How do you have shared log files under Windows?