2015-04-06 28 views
0

Linux有一个很好的实用工具,名为flock,用于获取文件的排他锁。在Windows上,使用win32 API中的LockFileEx可以实现类似的效果。我可以在Windows命令提示符下使用什么命令来锁定和解锁文件?通过命令行在Windows上锁定文件

警告:该命令应该在干净安装的Windows 7上工作 - 我无法安装任何额外的软件。

runme -whatever 5>lockfile.txt 

如果另一个这样的命令已经运行,并且使用相同的锁定文件,你会得到错误消息“该进程无法访问:

+1

LockFileEx API仅在调用该函数的进程的生命周期中锁定文件。你真的想做什么?如果您的目标是阻止文件被写入,您可以在命令提示符下键入“attrib + r filename”以使文件只读。 – selbie

+0

被限制在过程寿命内是可以的。我正在尝试编写一个可以在网络共享中工作的锁定机制。 –

+0

我想直接使用win32 API,但这意味着要为我们的构建过程添加一个编译步骤,仅用于Windows,而我们的构建系统目前在Linux上运行...... –

回答

1

您可以在命令行中使用输出重定向做简单的锁定该文件,因为它正在被另一个进程使用。“

+0

这很有趣,但它取决于cmd shell,它只打开读共享打开文件。相反,win-bash以读写共享的方式打开文件。 – eryksun

+0

“5”在这种情况下意味着什么? – selbie

+0

@eryksun:应该不是问题,Node.js默认使用cmd.exe。 –

相关问题