【发布时间】:2017-02-19 04:24:18
【问题描述】:
我今天在处理自托管备份系统时犯了一个重大错误,最终删除了大约一半的用户文件夹。幸运的是,备份存在并且能够复制我的所有数据。不好的部分是每个恢复的文件在文件名中都有一个时间戳。
所以原来是 filename.file 的文件现在是 filename~20170401-1999.file
对于批处理文件或其他什么,我不太聪明,但是有什么办法可以对 BAT 进行编程以遍历每个文件名并取出时间戳?每个时间戳都以 ~ 开头,以文件类型的句点结尾。因此,删除包括代字号和代字号之后的所有内容并在句号之前停在字符处将解决问题。
有大约 4600 个文件需要使用各种文件类型扩展名进行修复。我在 Windows 10 Pro 上并且能够使用 powershell 或 bash 来修复错误。我已经安装了 Windows Linux 子系统,所以也可以使用 bash 脚本。
【问题讨论】:
-
每个文件名中是否总是恰好出现一个
~? -
已经有了答案,但是是的,它在从备份恢复的每个文件中只出现一次。未恢复的文件只是 filename.type 而恢复的文件是 filename~dategroup-timegroup.type (I.E. resume~20170409-173314.pdf
-
可以使用 Internet 上任何免费提供的文件重命名实用程序轻松完成此操作。
标签: windows bash powershell batch-file filenames