将Powershell脚本更改为Python脚本

时间:2017-10-03 12:40:46

标签: python powershell

我正在尝试将powershell脚本转换为python脚本,有人可以解释这个命令行是如何工作的吗?

还有人可以解释一下python命令做同样的事情吗?

get-childitem \\$server\siglocal$\MACAutoTicket -recurse | where {$_.name -like "MACAutoTicket.$date.$server.macautoticket.*"} |

2 个答案:

答案 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)

vonpryz有一个很好的答案,我会补充一点。

name是子项目所有的属性;这个脚本只看名字。如果您需要所有属性的列表,运行命令get-childitem \\$server\siglocal$\MACAutoTicket | get-member将列出您可以使用的所有属性。

您可能已经知道这一点,但-recurse会查看所有子目录并获取其内容。请记住,get-childitem命令不仅仅是一个“dir”命令 - 它还可以从注册表中的父项获取子项,例如HKLM。

这个问题有点宽泛,所以我还会添加管道|字符的解释。这将从一个命令获取输出,并使其成为下一个命令的输入。您可以将一长串命令串在一起执行此操作,其中下一个cmdlet获取前一个输出,进行处理,吐出结果,然后由下一个cmdlet处理。