Board logo

标题: [问题求助] powershell配合批处理获取指定所有者的文件和文件夹 [打印本页]

作者: 04175884    时间: 2021-3-31 14:23     标题: powershell配合批处理获取指定所有者的文件和文件夹

有两个命令
CMD中DIR /S /B可以遍历输出文件路径
POWERSHELL中 用(GET-ACL “文件路径").Owner  可以得到文件所有者

我的需求是:想得到某个目录中所有文件和文件夹的 文件所有者,符合我设定的所有者名称的,把文件完整路径输出到.txT文本

说白了,我想用DIR命令中得到的文件完整路径做为POWERSHELL中那个文件路径参数,然后查找输出结果中有没有我要的那个所有者名字,有的话,把那个完整路径重定向生成一个TXT,写到里面去

求高手写一个代码

作者: xczxczxcz    时间: 2021-3-31 15:07

ps 3.0+  自行测试修改
  1. ls "xxxx\方腊\" -r |?{(get-acl).owner.equals('宋江')}|%{$_.fullname}|sc '.\宋江.log' -force
复制代码

作者: 04175884    时间: 2021-3-31 16:43

回复 2# xczxczxcz

兄弟,我这样改对吗,好像没有效果啊
ls "D:\Public\RD(研發中心)\普通資料交換區\SZRD-Mechanical(機構課)\鄧梅花\" -r |?{(get-acl).owner.equals('miehuadeng')}|%{$_.fullname}|sc '.\miehuadeng.log' -force
作者: xczxczxcz    时间: 2021-3-31 16:54

  1. ls "xxxx\方腊\" -r |?{(get-acl).owner.equals("${env:ComputerName}\宋江")}|%{$_.fullname}|sc '.\宋江.log' -force
复制代码
所有者前要加域名。
作者: xczxczxcz    时间: 2021-3-31 17:16

回复 3# 04175884


    计算机名可按自己的实际情况改,我写的是自动获取当前用户下的计算机名
作者: 04175884    时间: 2021-3-31 17:31

回复 5# xczxczxcz

兄弟,你写的是WINDOWS 下用的还是LINux下的,我WINDOWS下没用啊
作者: xczxczxcz    时间: 2021-3-31 17:44

回复 6# 04175884


    这是 PS  不是 BAT 保存为 xxx.ps1 ;ansi编码,右键执行,不会用则论坛自查用法。
作者: 04175884    时间: 2021-4-1 08:47

回复 7# xczxczxcz


    我是在powershell ise里面粘贴你的代码,运行没有任何提示和效果
作者: nwm310    时间: 2021-4-1 21:33

本帖最后由 nwm310 于 2021-4-1 22:15 编辑
  1. dir -r -Force | ?{$_.GetAccessControl().Owner -like '*\miehuadeng'} | %{$_.FullName} > .\out.txt
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2