【问题标题】:Is there a function to check if a folder name is the same as current date?是否有检查文件夹名称是否与当前日期相同的功能?
【发布时间】:2020-02-29 23:45:24
【问题描述】:

我需要帮助来编写一个 powershell 脚本来检查是否存在与当前日期 (ddmmyyyy) 同名的文件夹。 该脚本将每天运行并将所有文件从该文件夹复制到另一个覆盖所有内容。

我在谷歌上搜索过,但没有找到示例

我希望脚本检查当前文件夹的子文件夹并选择与当前日期同名的文件夹,而不是进入该文件夹并将文件复制到另一个位置。

【问题讨论】:

  • 谷歌有很多这样的例子,我真的认为在寻求帮助之前你需要基础的学习和理解。如果您已经有一些当前给您带来特定问题或错误的东西,请更新您的问题以包含它:)
  • 嗨,我同意你的观点,这就是我一直在做的事情,谷歌一下,但在这种情况下我真的找不到任何指针
  • Google 上有足够的信息。作为一个简单的提示:寻找一种以所需格式获取当前日期的方法(因此在 Get-Date 上查找文档),然后使用 Test-Path 测试具有该名称的文件夹是否存在(同样,在此 cmdlet)。我很乐意帮助您编写代码,但我不会为您编写代码。
  • @bluuf:你们是对的人,我根本不了解 Powershell,到目前为止,我以某种方式设法在 Google 上复制了一些东西。我实际上应该去多研究一下。谢谢指点。

标签: powershell directory names


【解决方案1】:

这是一个检查当前日期的文件夹是否存在的基本脚本。

$folderPath = "c:\myRootFolder"
$date = Get-Date
$dateString = $date.ToString("yyyyMMdd")

$doesexist = Test-Path ($folderPath + "\" + $dateString)

if($doesexist){
    Write-Host "folder does Exist"
}else{
    Write-Host "Folder does not exits"
}

【讨论】:

  • 非常感谢!我正在处理您的代码以解决 1 个问题: 即使文件夹存在,也返回“False”,问题出在 $datestring 上,无法识别测试路径
  • 正确的语法是 yyyyMMdd 并且我必须在 $ datestring 之后放一个 来复制子文件夹中的所有项目。
  • 它现在完美运行,对我帮助很大,谢谢!
【解决方案2】:
#$date = Get-Date
$dateString = Get-Date -Format "yyyyMMdd"

$doesexist = Test-Path ($folderPath + "\" + $dateString)

if($doesexist){
    Copy-Item -Force ($folderPath + "\" + $dateString + "\*") -Destination $folderPath
}else{
    Write-Host "Folder does not exits"
}```

【讨论】:

    猜你喜欢
    • 2020-08-20
    • 2022-08-19
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2018-03-24
    • 2020-05-18
    相关资源
    最近更新 更多