【发布时间】:2016-09-10 09:42:16
【问题描述】:
所以我试图找出一个脚本来删除埋在许多文件夹中的日志文件。与结束文件夹相同的路径减去更改的客户端名称文件夹。下面是一个我认为可以正常工作的代码示例,但它失败了。任何建议将不胜感激。
gci X:\ -directory -recurse | ?{$_.FullName -match \\temp\\company\\.+?\\AppData\\logfiles -and $_.CreationTime -lt (get-date).AddDays(-20)}|Remove-Item -recurse -whatif
所以目录是 X,我要删除的日志文件的路径是 temp\company\NAME\appdata\logfiles,而 NAME 文件夹可以是任意数量的不同客户端名称之一。
我不断收到错误。
At line:1 char:51
+ gci X:\ -directory -recurse | ?{$_.FullName -match \\temp\\company\\.+?\\ ...
+ ~
You must provide a value expression on the right-hand side of the '-match' operator.
At line:1 char:52
+ gci x:\ -directory -recurse | ?{$_.FullName -match \\Temp\\company\\.+?\\ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token '\\Temp\\company\\.+?\\AppData\\logfiles' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
有没有人知道我们做错了什么或者如何实现这个目标?
提前致谢!
【问题讨论】:
-
它是如何失败的?为什么您的正则表达式不在字符串引号中?
gci x:\temp\company\*\appdata\logfiles\* | where { ... date test}呢? -
我添加了我不断得到的错误
-
然后把你的正则表达式放在字符串引号
'\\temp\\company\\.+?\\AppData\\logfiles' -
不幸的是我已经尝试过了。
标签: powershell delete-file logfile