【发布时间】:2018-03-22 20:35:41
【问题描述】:
我想要一个批处理文件将文件从每个月更改的文件夹复制到另一个文件夹,但 Windows 命令提示符似乎不喜欢通配符。
示例:
我想复制文件夹media1 并包含此目录中的文件:
K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI81711001\FI81711001\FI81711_AHDF.001\OM_LOCAL_FLOPPY_1.44MB_S520_v1_1\media1
到这个目录K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\。
但是文件夹FI81711001 的1711 部分每个月都会更改,我不知道如何让通配符在脚本中起作用。
我尝试了以下脚本:
robocopy "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI8*\FI8*\FI8*\OM_LOCAL*\media1" "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\"
copy "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI8*\FI8*\FI8*\OM_LOCAL*\media1" "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\"
xcopy "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI8*\FI8*\FI8*\OM_LOCAL*\media1" "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\"
for /D %%D in (K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI8*\FI8*\FI8*\OM_LOCAL*\) do copy "%%~D\media1\" "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\"
当我运行For 脚本时,我得到%%D was unexpected at this time.
【问题讨论】:
-
欢迎来到 SO! :-) 到目前为止,您对脚本有什么尝试?您可以通过编辑将其添加到您的问题中吗?
-
*在您指定的位置表示“以 [FI8] 开头”-您的意思是*被日期替换-如果是这样,以什么格式?您只想复制找到的文件还是想要一些目录子结构 - 请记住..._6下面的子树可以复制,但不能复制到指定的目录中(这会导致尝试将文件复制到 他们自己)。文件/目录名是否包含任何对cmd有意义的非字母数字字符,例如%!()^&+? -
您忘记在
for行中引用<path\filename>。 -
for /D %%D in ("K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\FI8*\FI8*\FI8*\OM_LOCAL*") do xcopy "%%~D\media1\" "K:\Eng\NAVDB\Navigation Databases\Current\FI8_Icelandair_B75_76\"还是不行:-(
标签: batch-file wildcard