我正在尝试将powershell脚本转换为python脚本,有人可以解释这个命令行是如何工作的吗?
还有人可以解释一下python命令做同样的事情吗?
get-childitem \\$server\siglocal$\MACAutoTicket -recurse | where {$_.name -like "MACAutoTicket.$date.$server.macautoticket.*"} |
答案 0 :(得分:0)
解释Powershell:
get-childitem \\$server\siglocal$\MACAutoTicket -recurse
这将列出所有文件,包括远程计算机上作为变量$server
传递的子目录。
然后将结果传递给过滤器
where {$_.name -like "MACAutoTicket.$date.$server.macautoticket.*"}
反过来,它只包含与特定名称模式匹配的文件:
"MACAutoTicket.$date.$server.macautoticket.*"
文件名应包含字符串文字,可能是从$date
获取的日期以及从前面提到的$server
获得的服务器名称。
要继续进行Python转换,请找出获取$server
和$date
的位置。也许它们是脚本参数或从某些配置文件中读取。
Python fnmatch
看起来像是为文件名创建类似过滤器的良好起点。
答案 1 :(得分:0)
name
是子项目所有的属性;这个脚本只看名字。如果您需要所有属性的列表,运行命令get-childitem \\$server\siglocal$\MACAutoTicket | get-member
将列出您可以使用的所有属性。
您可能已经知道这一点,但-recurse
会查看所有子目录并获取其内容。请记住,get-childitem
命令不仅仅是一个“dir”命令 - 它还可以从注册表中的父项获取子项,例如HKLM。
这个问题有点宽泛,所以我还会添加管道|
字符的解释。这将从一个命令获取输出,并使其成为下一个命令的输入。您可以将一长串命令串在一起执行此操作,其中下一个cmdlet获取前一个输出,进行处理,吐出结果,然后由下一个cmdlet处理。