【问题标题】:Powershell Loop through folder move file, create directory if doesn't existPowershell循环遍历文件夹移动文件,如果不存在则创建目录
【发布时间】:2020-11-05 11:05:34
【问题描述】:

下午好,

如果这是一个基本问题,我深表歉意,但我一直在努力解决这个问题,对 Powershell 还是很陌生。

我有一个网络映射文件夹Z:\Test

Z:\Test 下是多个结构相同的子文件夹。我需要遍历所有子文件夹并移动所有 PDF 文件(如果它们存在于特定位置)。

Z:\Test\1\Work\PDF\*.PDF - 然后移动 Z:\Test\2\Work\PDF\*.PDF - 移动等等等等。

我尝试了以下方法,但就像我说的那样,我一直在努力解决它。感谢任何帮助

Get-ChildItem -Path Z:\temp\*\Work -File -Include "*.PDF" -Recurse | Copy-Item -Force -Destination Y:\Temp\*\Work 

【问题讨论】:

  • 我对您的帖子进行了格式化以稍微提高可读性。
  • 如何知道哪个文件应该进入哪个文件夹?我假设 *.pdf 表示所有 pdf 文件,但是您想如何拆分它们,或者所有 PDF 文件都应该放在同一个文件夹中?
  • 如果文件存在于 Z:\ 上的文件夹中,则需要将其复制到 Y:\ 例如 Z:\1\Work\PDF\1.pdf 应该复制到 Y: \1\工作\PDF\
  • 这能回答你的问题吗? Create directory if it does not exist
  • 另外,我写了一个关于这个问题的答案,可能会对你有所帮助。 stackoverflow.com/questions/62797873/…关于您的最后一条评论,您在尝试复制文件时实际上遇到了什么问题?有什么错误吗?

标签: powershell


【解决方案1】:

我会尝试这样的:

$files = Get-ChildItem -Path Z:\Temp\*\Work -File -Include "*.PDF" -Recurse
foreach ($file in $files) {
    Copy-Item -Path $file.FullName -Destination Y:\Temp\*\Work -Force
}

【讨论】:

  • 好的,我会尝试你的建议。再次感谢。
  • @JasonSteffens,例如,在循环中,您可以过滤 if 语句中的文件。
猜你喜欢
  • 2017-06-28
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
相关资源
最近更新 更多