【发布时间】: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