标题: [文件操作] 批处理BAT如何判断文件是否为打开状态? [打印本页]
作者: linlianboy 时间: 2014-4-12 13:28 标题: 批处理BAT如何判断文件是否为打开状态?
问题:
在远程目录\\10.0.0.1\test\ 内有多个CSV文件(file1.csv和file2.csv),其中file2.csv文件目前状态为其他网络用户打开编辑中,file1.csv文件为空闲状态(可以重命名),请问下各位如何判断该目录内有哪些文件为空闲状态
作者: linlianboy 时间: 2014-4-14 15:40
无人知??
作者: PowerShell 时间: 2014-4-14 18:13
如何判断文件是否为 只读状态?
其中file2.csv文件目前状态为其他网络用户打开编辑中,你再打开file2.csv的话将有只读文件的提示。
当你看到只读提示,就知道是只读状态了。
上面两句话,可以用vbs,powershell,来实现:
new 一个excel对象,打开file2.csv,判断属性是啥,输出并返回即可。
作者: CrLf 时间: 2014-4-14 21:44
本帖最后由 CrLf 于 2014-4-14 22:02 编辑
如果楼主说的是判断被占用,多简单个事儿,还要用 excel ?思路真开阔- @echo off
- for %%a in (\\10.0.0.1\test\*.csv) do ren "%%a" "%%~nxa"||echo %%a 被锁定
- pause
复制代码
或- @echo off
- for %%a in (\\10.0.0.1\test\*.csv) do break >>"%%~nxa"||echo %%a 被锁定
复制代码
至于如何判断被某个程序打开了但并没有占用文件句柄,本机可能可以用 openfiles(只是可能)或 tasklist 或 wmic,别的机子打开的一般没办法直接判断——除非你有远程权限
作者: qzwqzw 时间: 2014-4-14 22:35
可以在发布文件共享的主机上运行 net file 查看被锁定的共享文件及目录
作者: CrLf 时间: 2014-4-14 23:37
回复 5# qzwqzw
测试没看到效果,这是以什么为判断依据的呢?
作者: PowerShell 时间: 2014-4-30 09:30
Block-SmbShareAccess
Unblock-SmbShareAccess
刚刚看到这两条powershell命令,或许这俩命令加参数可以解决你的问题,
Unblock-SmbShareAccess
http://technet.microsoft.com/lib ... 3-92bf-86b5cf6d0a75(v=wps.630).aspx
谁愿意研究一下?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |