【发布时间】:2018-06-07 16:44:11
【问题描述】:
今天我正在尝试编写一个脚本,它会自动将一些文件移动到我的游戏文件夹(使用 xcopy)。这是一个简单的批处理,但我的问题是,几乎每个月,我需要移动文件的文件夹都在变化。 而且我真的很懒,所以我有办法保存实际的目标文件夹(路径),比如使用“dir”并将其保存在一个变量中,以便用作 xcopy 的目标。
链接在这里 --> Architecture tree
重要,只有 1 个文件夹 EDIT:存在于目标文件夹中(可能更简单?)。
这是我的想法,但它不起作用,可能是因为信息太多。
来源 -> D:\MyMods
全名:D:\config\Games\WoWS\Mods\6) Skins\All_Skins(Modified)\
目的地 -> *L:\games\mods\0.6.15.0*
全名:L:\Games\World_of_Warships\res_mods
set version = dir "L:\Games\World_of_Warships\res_mods"
中间结果 -> 版本 = 0.6.15.0
xcopy "D:\source\" "L:\Games\World_of_Warships\res_mods\%version%\" /E /Y
最终结果 -> L:\Games\World_of_Warships\res_mods\0.6.15.0\FILES_COPIED
PS:我几乎失去了所有关于批处理的概念,但通过很少的研究,我通常会找到我想要做的事情,但在这里,我找不到它:|
谢谢大家
编辑:最终建立的“dir /AD /B”给了我正确的名称文件夹,但现在我需要保存它,或者让它在我的 xcopy 中可用
试过了:(不工作)
set version=NotSet
dir /AD /B "L:\Games\World_of_Warships\res_mods" > %version%
最后,经过多次尝试,我得到了一些东西,但它无法正常工作,原因我看不到:
dir /AD /B "L:\Games\World_of_Warships\res_mods" > version.txt
set /P version=<version.txt
set "destination=L:\Games\World_of_Warships\res_mods\%version%\"
set "source=D:\config\Games\WoWS\Mods\6) Skins\All_Skins(Modified)\"
xcopy %source% %destination% /E /Y
echo %destination%
echo %source%
结果如下:
参数数量无效---> 为什么?
L:\Games\World_of_Warships\res_mods\0.6.15.0\ ---> 正确
D:\config\Games\WoWS\Mods\6) Skins\All_Skins(Modified)\ ---> 正确
EDIT2:我缩短了文件夹的名称以便更容易“计划”,然后我只需要在路径之前和之后使用一些“,然后它应该可以工作。但显然,它会带来更多麻烦比什么都好。很抱歉。
感谢-1,但最好说明你为什么这样做,以免犯同样的错误;)
【问题讨论】:
-
你是想说在`L:\game\mods`下总会有一个唯一的文件夹吗?
-
是的,我就是这个意思,因为每次创建其他目录时,旧的目录都会被删除(通过另一种方式,所以我不需要用这个脚本在这里删除它)。
-
@Drexx,您希望 d:\MyMods 包含 L:\Games\Mods 的镜像还是只是将任何新位复制到目标?
-
@jwdonahue 我在设备 D: 上的文件夹中获取了我的 mods 文件,我想将其中包含的所有内容复制并粘贴到我的游戏文件夹(L:设备)中,但每次,我必须手动完成,现在我想要一个脚本来自动完成 :)
标签: windows batch-file cmd automation