免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1250 | 回复: 1

[文本处理] PowerShell - 如何找到占用文件的真凶? [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-08-15 12:07 |显示全部楼层
  1. $wkPath = "z:"
  2. Set-Location -Path $wkPath
  3. $fStream = New-Object IO.FileStream("md5", "Append", "Write")
  4. #$fStream.Close()
复制代码

由于没有经验 未及时关闭 FileStream 流对象,导致第二次运行的时候。提示如下错误:
New-Object : 使用“3”个参数调用“.ctor”时发生异常:“文件“C:\Users\Elvis\md5”正由另一进程使用,因此该进程无法访问此文件。”

通过其他工具发现该文件的确被进程 powershell_ise 所占用。
利用 PowerShell 如何通过该文件逆向找到占用此文件的进程? PowerShell 太强大了,就是不会用啊。请大神指点一下?


论坛徽章:
0
发表于 2017-08-15 13:29 |显示全部楼层
1 IO.FileStream,这是。net用法。
手册我已经在  第8课的相关位置,给出了。应该严格遵守,即 .Close() 或    $文件流.Dispose()
绝大多数老师也都是这么教的。打开文件用什么,如何读写,然后要关闭。为何你像小孩一样,总是想要不遵守正常的路线。
python文件用完了,也要close。你要是如此顽皮,py老师也要打你pp。



2 如果你精研手册,或者懂。net,你会发现,此有几个参数,可以让文本并发写入流,然后有个并发超时。从
6流中并发读,或禁止并发读。这些是。net读写文件的高级用法。

3编写脚本,基本上无需【逆向找到占用此文件的进程】,
3。1文件被占用了,就报错即可。
3。2用2中的高级用法,实现并发写入同一个文件。能并发写不会出现此情况。

4就是想 【逆向找到占用此文件的进程】,用微软高级图形任务管理器process exporer,或者调试器。


不用找了,(占用文件的)真凶,就是你,这个不用【$文件流.Dispose()】的懒蛋。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP