【问题标题】:powershell to open a filename that is always changingpowershell 打开一个总是在变化的文件名
【发布时间】:2017-03-01 22:21:34
【问题描述】:

我正在尝试将我的 powershell 脚本放在 Windows 任务计划程序中,这样我就可以安排它每月打开一个 excel 文件,而不需要我的输入。我遇到的问题是该文件名称每个月都会随着日期的更新而变化。那么如何使用 powershell 脚本打开正确的文件?

我目前的脚本如下:

$objectExcel = new-object -c excel.application $objectExcel.displayAlerts=$false $objectExcel.visible=$FALSE $main=$objectExcel.workbooks.open("P:\report.xlsm")

这将打开一个名为 Report 的 xlsm 文件。

3 月份,当我更新报告时,我会将其重命名为 Report201702。当我在四月份更新报告时,我将其重命名为 Report201703。

如何编写我的 powershell 脚本,以便它自动在文件名中附加日期格式,或者让我始终获取最新文件的一种方式。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    只需使用带有自定义格式的 Get-Date

    $report = "report{0}.xlsm" -f (Get-Date -format yyyyMM)
    

    【讨论】:

      【解决方案2】:

      或者,找到最新的文件,将名称保存到变量并打开它。

      $report = Get-ChildItem P:\*.xlsm | sort lastwritetime | select -Last 1
      $main = $objectExcel.workbooks.open($report.fullname)
      

      【讨论】:

      • 谢谢。只是为了澄清一下,这究竟是做什么的?更具体地说,这就是我所做的。这个对吗?抱歉,我是脚本新手。 Set-executionpolicy remotesigned $objectExcel = new-object -c excel.application $objectExcel.displayAlerts=$false $objectExcel.visible=$FALSE $report = Get-ChildItem "P:\Data Requests\Report Automations"*.xlsm |排序上次写入时间 | select -last 1 $main=$objectExcel.workbooks.open($report.fullname) (抱歉,我回复时不知道如何编辑格式)
      • Set-executionpolicy 是一个持久设置,不应出现在脚本中。对于测试我会删除$objectExcel.visible=$FALSE 否则你将不得不测试自己;-)
      • :)。谢谢。我想知道 BenH 建议的代码是做什么的,以及我是否将其正确应用到我的脚本中。
      • 此代码查找最后写入的.xlsm 文件并将对象保存到变量$report。然后在打开工作簿的行中,调用变量中的fullname 属性,这将是要打开的文件的完整路径。
      猜你喜欢
      • 1970-01-01
      • 2012-02-25
      • 2022-10-03
      • 1970-01-01
      • 2015-11-16
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多