删除使用PowerShell隐藏的日志文件

时间:2016-09-09 22:11:52

标签: powershell delete-file logfile

所以我试图找出一个脚本来删除埋在许多文件夹中的日志文件。与结束文件夹相同的路径减去更改的客户端名称文件夹。下面是一个我认为可行的代码示例,它可能会失败。任何建议将不胜感激。

zeppelin:
    container_name: "${DATARPM_ZEPPELIN_CONTAINER_NAME}"
    image: "${DOCKER_REGISTRY}/zeppelin:${DATARPM_ZEPPELIN_TAG}"
    network_mode: "${CONTAINER_NETWORK}"
    mem_limit: "${DATARPM_ZEPPELIN_MEM_LIMIT}"
    env_file: datarpm-etc.env
    links:
      - "xyz"
      - "abc"
    environment:
      - "VOL1=${VOL1}"
      - "constraint:node==${DATARPM_ZEPPELIN_HOST}"
    volumes:
      - "${VOL1}:${VOL1}:rw"
    entrypoint: ["/bin/bash", "-c", '<some command here>']

所以目录是X,我要删除的日志文件的路径是gci X:\ -directory -recurse | ?{$_.FullName -match \\temp\\company\\.+?\\AppData\\logfiles -and $_.CreationTime -lt (get-date).AddDays(-20)}|Remove-Item -recurse -whatif ,NAME文件夹可以是任意数量的不同客户名称之一。

我一直在收到错误。

temp\company\NAME\appdata\logfiles

有没有人有任何想法我们做错了什么或如何实现这个目标?

提前致谢!

1 个答案:

答案 0 :(得分:0)

错误是因为-match的第二个参数需要在引号中。

但是可能有一种方法可以做到这一点而不需要你的例子的复杂性。 Get-ChildItem可以同时使用-Path和-Include(或-Filter)参数。所以你可以使用这样的东西:

Get-ChildItem -path c:\xxx -Include *log.tmp -Recurse | ... |  Remove-Item