【问题标题】:Batch or Powershell rename folder to yesterday's date批处理或 Powershell 将文件夹重命名为昨天的日期
【发布时间】:2021-08-27 18:57:14
【问题描述】:

我正在构建一个批处理文件,该文件需要一个 zip 存档,该存档每晚上传并解压缩内容并将其放在特定文件夹中。

目前,我正在生成一个名为“tmpExtract”的临时文件夹。提取文件后,我想用昨天的日期重命名“tmpExtract”。最好采用MM-DD-YYYY 格式。

我能够找到一个 PowerShell 命令来获取昨天的日期,但是,我卡在了可以将目录重命名为昨天的日期的部分。

PowerShell $date = Get-Date; $date=$date.AddDays(-1); $date.ToString('yyyy-MM-dd')

我正在使用的完整目录: Y:\\Archive\TestFolder\Recordings\tmpExtract\

重命名完成后我正在寻找的完整目录:Y:\\Archive\TestFolder\Recordings\06-09-2021

我对 PowerShell 或 Batch/CMD 持开放态度。哪个效果最好!

【问题讨论】:

  • 所需的结果文件夹名称与您描述的日期模式不匹配(dd-MM-yyyy vs yyyy-MM-dd.. 此外,不需要两个反斜杠Y:\\Archive...
  • PowerShell:Get-Item -Path 'Y:\Archive\TestFolder\Recordings\tmpExtract' | Rename-Item -NewName ('{0:dd-MM-yyyy}' -f (Get-Date).AddDays(-1))
  • ...从批处理文件中,这将是 @%SystemRoot%\System32\powershell.exe -NoProfile -Command "Get-Item -Path 'Y:\Archive\TestFolder\Recordings\tmpExtract' | Rename-Item -NewName ('{0:MM-dd-yyyy}' -f (Get-Date).AddDays(-1))"

标签: powershell date batch-file


【解决方案1】:

根据 Theo 的回复,我发现以下代码效果最佳

powershell Get-Item -Path 'Y:\Archive\TestFolder\Recordings\tmpExtract' | powershell Rename-Item -path 'Y:\Archive\TestFolder\Recordings\tmpExtract' -NewName ('{0:dd-MM-yyyy}' -f (Get-Date).AddDays(-1))

我需要将powershell-Path 'Y:\Archive\TestFolder\Recordings\tmpExtract' 添加到字符串的第二部分。经过测试,它按预期工作。

另外,我不知道映射网络路径不需要第二个“”。

【讨论】:

  • 如果您从 PowerShell(控制台或 ISE)运行它,您可以删除重命名项目上的 powershell-path,因为它通过管道传递到重命名项目 cmdlet。
猜你喜欢
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
相关资源
最近更新 更多