使用 dir 批量获取文件夹目标(cmd)并在找到的名称文件夹中复制+粘贴文件

德雷克斯

今天我正在尝试做一个脚本,它会自动将一些文件移动到我的游戏文件夹(使用 xcopy)。这是一个简单的批处理,但我的问题是,几乎每个月,我需要移动文件的文件夹都在变化。而且我真的很懒,所以我有一种方法可以保存实际的目标文件夹(路径),例如使用“dir”并将其保存在变量中以用作 xcopy 的目标。


在这里链接-->架构树

重要的是,目标文件夹中只有 1 个文件夹 EDIT:existing(可能更容易?)。

这是我的想法,但它不起作用,可能是因为信息太多。

源 -> 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,但最好说明你为什么这样做是为了不犯同样的错误;)

组合

根据我的理解,您收到此消息的原因是您的source变量值不正确且不必要的斜杠

这不应该工作:

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

这应该可以工作(可选)

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

这应该有效(推荐)

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

将它们放在一起,您的脚本将如下所示:

Dir /B/AD-S-L "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%

编辑

要绕过文本文件的使用,您可以将上面的前三行替换为:

For /D %%A In ("L:\Games\World_of_Warships\res_mods\*") Do Set "destination=%%~fA"

请记住,当您所说的只有一个时,这将充分检索完整路径目录名称

如果您想,为了安全起见,确保您使用的是最近创建的目录名称,那么您可以使用它:

CD /D "L:\Games\World_of_Warships\res_mods" 2>Nul || Exit /B
For /F "Delims=" %%A In ('Dir /B/AD-S-L/OD/TC') Do Set "destination=%%~fA"

编辑 2

根据最新的评论请求,要么:

Set "destination="
For /D %%A In ("L:\Games\World_of_Warships\res_mods\*"
) Do If Not Defined destination Set "destination=%%~fA"

或者Dir与 ordering 一起使用以确保您获得正确的第一个。/ON按名称排序,按名称/O-N反向排序,或/OD|/O-D按日期与/TC|/TW创建或写入类似

CD /D "L:\Games\World_of_Warships\res_mods" 2>Nul || Exit /B
Set "destination="
For /F "Delims=" %%A In ('Dir /B/AD-S-L/ON'
) Do If Not Defined destination Set "destination=%%~fA"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用cmd中的dir获取不带路径的文件夹名

来自分类Dev

使用R将文件复制粘贴到名称匹配的文件夹中

来自分类Dev

在Windows中获取文件夹大小的命令或工具,而不使用dir或du

来自分类Dev

使用Dir命令排除多个文件夹

来自分类Dev

Shiny不会将下载的文件保存在使用output_dir设置的文件夹中

来自分类Dev

搜索部分文件夹名称并返回dir以与批处理一起使用

来自分类Dev

使用命令或脚本将文件粘贴到多个文件夹中,并在保留原始文件名称的同时使文件类型覆盖相同类型的文件?

来自分类Dev

使用 .csv 中的文件夹名称进行复制

来自分类Dev

如何使用dir和一起复制来搜索目录并复制到文件夹?

来自分类Dev

使用通配符递归复制文件夹中的文件(文件夹路径中包含通配符)

来自分类Dev

CMD递归删除文件夹(即在多个位置使用相同的文件夹名称)

来自分类Dev

批处理文件中处于特定文件夹深度的dir文件夹

来自分类Dev

如何使用s3cmd在S3上设置目标文件夹的名称

来自分类Dev

遍历文件夹并使用文件夹名称顺序重命名每个文件夹中的所有文件

来自分类Dev

如何在Windows中使用文件夹粘贴文本

来自分类Dev

如何使用终端复制文件夹中的特定文件

来自分类Dev

使用父文件夹的名称重命名子文件夹中的文件

来自分类Dev

如何使用部分文件夹名称获取文件夹路径?

来自分类Dev

复制目标文件夹中的文件

来自分类Dev

子文件夹DJANGO中的BASE_DIR输出

来自分类Dev

dir命令在特定文件夹中不起作用

来自分类Dev

{is dir}和mkdir在单独的文件夹中

来自分类Dev

子文件夹DJANGO中的BASE_DIR输出

来自分类Dev

使用Windows bat脚本将随机文件从随机子文件夹复制到目标文件夹

来自分类Dev

如何使用xcopy将子文件夹复制到子文件夹中?

来自分类Dev

For循环复制粘贴文件夹并使用增量对其重命名

来自分类Dev

将文件从子文件夹复制到父文件夹并使用父文件夹名称重命名文件

来自分类Dev

如何获取文件名仅使用cmd批处理文件复制到其他文件夹

来自分类Dev

根据部分名称列表搜索文件,然后使用Windows Shell将它们复制到目标文件夹

Related 相关文章

  1. 1

    使用cmd中的dir获取不带路径的文件夹名

  2. 2

    使用R将文件复制粘贴到名称匹配的文件夹中

  3. 3

    在Windows中获取文件夹大小的命令或工具,而不使用dir或du

  4. 4

    使用Dir命令排除多个文件夹

  5. 5

    Shiny不会将下载的文件保存在使用output_dir设置的文件夹中

  6. 6

    搜索部分文件夹名称并返回dir以与批处理一起使用

  7. 7

    使用命令或脚本将文件粘贴到多个文件夹中,并在保留原始文件名称的同时使文件类型覆盖相同类型的文件?

  8. 8

    使用 .csv 中的文件夹名称进行复制

  9. 9

    如何使用dir和一起复制来搜索目录并复制到文件夹?

  10. 10

    使用通配符递归复制文件夹中的文件(文件夹路径中包含通配符)

  11. 11

    CMD递归删除文件夹(即在多个位置使用相同的文件夹名称)

  12. 12

    批处理文件中处于特定文件夹深度的dir文件夹

  13. 13

    如何使用s3cmd在S3上设置目标文件夹的名称

  14. 14

    遍历文件夹并使用文件夹名称顺序重命名每个文件夹中的所有文件

  15. 15

    如何在Windows中使用文件夹粘贴文本

  16. 16

    如何使用终端复制文件夹中的特定文件

  17. 17

    使用父文件夹的名称重命名子文件夹中的文件

  18. 18

    如何使用部分文件夹名称获取文件夹路径?

  19. 19

    复制目标文件夹中的文件

  20. 20

    子文件夹DJANGO中的BASE_DIR输出

  21. 21

    dir命令在特定文件夹中不起作用

  22. 22

    {is dir}和mkdir在单独的文件夹中

  23. 23

    子文件夹DJANGO中的BASE_DIR输出

  24. 24

    使用Windows bat脚本将随机文件从随机子文件夹复制到目标文件夹

  25. 25

    如何使用xcopy将子文件夹复制到子文件夹中?

  26. 26

    For循环复制粘贴文件夹并使用增量对其重命名

  27. 27

    将文件从子文件夹复制到父文件夹并使用父文件夹名称重命名文件

  28. 28

    如何获取文件名仅使用cmd批处理文件复制到其他文件夹

  29. 29

    根据部分名称列表搜索文件,然后使用Windows Shell将它们复制到目标文件夹

热门标签

归档