【问题标题】:Batch-file: how to backup all .doc files to a folder批处理文件:如何将所有 .doc 文件备份到文件夹
【发布时间】:2021-03-07 01:54:28
【问题描述】:

我有这个小脚本,旨在将文件夹中的所有*.doc 文件备份到_z 子文件夹中。我刚刚注意到它不能正常工作,当_ 是应该备份的*.doc 的文件名的一部分时。

谁能给我解释一下问题的根源,或者就如何纠正它提出建议?

mkdir _z
copy *.doc _z\*"_""%date:/=-%"" ""%time::=-%".doc

【问题讨论】:

  • 不要在“随机”位置出现引号。引用整个路径一次(就像@Gerhard 所做的那样)
  • @Gerhard 感谢您的友好回复!可悲的是,它对我不起作用。批量使用for %%i in (*.doc) do copy "%%~i" "_z\%~ni_%date:/=-% %time::=-%%%~xi" 给了我以下信息:The following usage of the path operator in batch-parameter substitution is invalid: %~ni_%date:/=-% %time::=-%%%~xi" For valid formats type CALL /? or FOR /? The syntax of the command is incorrect. C:\test>for %i in (*.doc) do copy "%~i" "_z\z\%~ni_%date:/=-% %time::=-%%%~xi" 知道为什么吗?
  • @Gerhard 我理解您的部分答案,但不是全部。虽然我尝试过,但我对命令提示符的了解有限,而且 % 和 ~ 的大部分用法对我来说都是一个谜:-( 如果你能指出一些好的来源,请做。我发现的大部分内容只是一个命令或示例列表。也没有找到一本真正的好书。请注意,虽然我不是程序员,但我使用 VBA、AHK 和 Automate w/o 问题。仍然不如真正的程序员 :-)
  • 你忘记了 %"_z\%~ni_... 应该是 "_z\%%~ni_...
  • @Stephan,是的,那个在我身上。我没有将它添加到我的评论中。

标签: windows batch-file cmd backup


【解决方案1】:

目前你告诉它复制所有内容到下划线,如果存在,否则它会创建一个,如果不存在。这样下划线后的文字就被忽略了。试试 for 循环

@echo off
mkdir "_z">nul 2>&1
for %%i in (*.doc) do copy "%%~i" "_z\%%~ni_%date:/=-% %time::=-%%%~xi"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    相关资源
    最近更新 更多