【问题标题】:How to remove the timestamp from the filename?如何从文件名中删除时间戳?
【发布时间】:2013-12-03 17:19:41
【问题描述】:

您好,我正在编写一个脚本来重命名生成的文件并将其移动到文件夹中。生成文件的文件名末尾附加了时间戳。

例如:Apache34-22-09.bak Tomcat44-26-06.bak

我想从文件名中删除时间戳,如下所示。

例如:Apache.bak Tomcat.bak

请帮助我。提前致谢。

【问题讨论】:

  • I would like to remove the time stamp from the file name like the below. 那么是什么阻止了你?
  • @SiddharthRout,以 Apache34-22-09.bak 为例。我想从文件名中删除 '34-22-09'
  • 请告诉我们您尝试了什么?要求代码的问题必须表明对正在解决的问题的最低限度的理解。包括尝试的解决方案、它们为什么不起作用以及预期的结果。另见:Stack Overflow question checklist
  • @SiddharthRout 这是我试过的。

标签: excel vbscript scripting vba


【解决方案1】:

您可以使用以下代码:

Left(fileName, (Len(fileName) - 12)) & ".bak"

应该是这样的,试试看。

【讨论】:

  • 基本上,它从字符串的左侧返回指定数量的字符,直到日期开始为止。
  • 然后,您可以使用此返回的字符串值重命名文件。
  • 发帖前有测试过吗? :)
  • 当然,不,我只是试图提供一种方法来说明如何做到这一点,但我确信它是正确的。
  • but I am sure it is correct.你可能想再检查一遍:)
【解决方案2】:

For Each fil In fol.Files sName = Left(fil.Name, (Len(fil.Name) - 8)) fil.Name = sName Next – arunpandiyarajhen 2 分钟前

这也适用于.xlsx 等扩展名。下面的代码不会对扩展进行硬编码。

Sub Sample()
    Dim fileName As String
    Dim Fname As String
    Dim NewFname  as String

    fileName = "Apache34-22-09.bak"

    '~~> Get File name without the extension
    Fname = Left(fileName, (InStrRev(fileName, ".", -1, vbTextCompare) - 1))

    '~~> Create the new file name
    NewFname = Left(Fname, Len(Fname) - 8) & Replace(fileName, Fname, "")

    Debug.Print NewFname
End Sub

【讨论】:

  • @arunpandiyarajhen:我在 34 分钟前就准备好了代码 :) 如果你自己努力解决这个问题,那么我会回答的。为了您将来的参考,请始终在您的问题中包含您尝试过的内容以及您卡在哪里:)
  • 当然悉达多。我会那样做。实际上,我对 vbscript 很陌生。我几乎达到了我的要求。我一个人被困在这个时间戳中。我会把我的全部代码和要求邮寄给你。请提供您的邮件 ID。
  • @arunpandiyarajhen:对不起,我不帮助人们处理电子邮件,如果我这样做了,我会向他们收费:D 如果您遇到困难,只需在 stackoverflow 中使用您尝试过的代码发布一个问题,然后指出你被卡住的部分,有人肯定会帮助你:)
  • @SiddharthRout 如果文件名是动态的并且仍然包含日期怎么办。如何删除它?说它可以在文件名的开头或结尾有数据?例如 ddmmyyyyFilename.txt ot Filenameddmmyyyy.txt
猜你喜欢
  • 2022-01-06
  • 2019-08-18
  • 1970-01-01
  • 2016-08-03
  • 2018-12-28
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多