[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理BAT如何判断文件是否为打开状态?

问题:

在远程目录\\10.0.0.1\test\ 内有多个CSV文件(file1.csv和file2.csv),其中file2.csv文件目前状态为其他网络用户打开编辑中,file1.csv文件为空闲状态(可以重命名),请问下各位如何判断该目录内有哪些文件为空闲状态

Block-SmbShareAccess
Unblock-SmbShareAccess
刚刚看到这两条powershell命令,或许这俩命令加参数可以解决你的问题,
Unblock-SmbShareAccess
http://technet.microsoft.com/lib ... 3-92bf-86b5cf6d0a75(v=wps.630).aspx
谁愿意研究一下?
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 5# qzwqzw


    测试没看到效果,这是以什么为判断依据的呢?

TOP

可以在发布文件共享的主机上运行 net file 查看被锁定的共享文件及目录
天的白色影子

TOP

本帖最后由 CrLf 于 2014-4-14 22:02 编辑

如果楼主说的是判断被占用,多简单个事儿,还要用 excel ?思路真开阔
  1. @echo off
  2. for %%a in (\\10.0.0.1\test\*.csv) do ren "%%a" "%%~nxa"||echo %%a 被锁定
  3. pause
复制代码
  1. @echo off
  2. for %%a in (\\10.0.0.1\test\*.csv) do break >>"%%~nxa"||echo %%a 被锁定
复制代码
至于如何判断被某个程序打开了但并没有占用文件句柄,本机可能可以用 openfiles(只是可能)或 tasklist 或 wmic,别的机子打开的一般没办法直接判断——除非你有远程权限

TOP

如何判断文件是否为  只读状态?

其中file2.csv文件目前状态为其他网络用户打开编辑中,你再打开file2.csv的话将有只读文件的提示。
当你看到只读提示,就知道是只读状态了。

上面两句话,可以用vbs,powershell,来实现:
new 一个excel对象,打开file2.csv,判断属性是啥,输出并返回即可。
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

无人知??

TOP

返回列表