无忧启动论坛

 找回密码
 注册
搜索

如何复制txt内容的指定文件到新目录,并且保存目录结构?

查看数: 671 | 评论数: 18 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-9-4 11:05

正文摘要:

本帖最后由 2012zhiwen 于 2024-9-4 11:10 编辑 有一个txt文件,如下如 如何复制txt内容的指定文件到新目录,并且保存目录结构。 例如: 需要复制“C:\Windows\SysWOW64\crypt32.dll”到“D:\ne ...

回复

xmzhqw 发表于 2024-9-6 20:47:17
论坛中找到的,我一直在用,还不错。把txt名称更名为RNDIS.txt,然后拖到下面批处理文件(设为:copyfiles.bat)上即可。

@echo off
pushd %~dp0
if not exist RNDIS mkdir RNDIS
(
    for /f "delims=" %%a in (RNDIS.txt) do (
        if exist "%%~fa\" (
            xcopy "%%~fa\*.*" "RNDIS%%~pnxa" /s /y
        ) else (
            xcopy "%%~fa" "RNDIS%%~pa" /s /y
        )
    )
)>RNDIS.log
pause
旭东 发表于 2024-9-5 21:11:12
学习了
2012zhiwen 发表于 2024-9-5 20:53:54
ppll2030 发表于 2024-9-5 14:23
把要复制的名单命名为1.txt
把代码保存为bat文件,跟1.txt放一块,运行即可。

测试可以。谢谢
2012zhiwen 发表于 2024-9-5 20:53:00

测试可以。谢谢。
szwp 发表于 2024-9-5 15:20:32

%~pf前要加路径可以是.
2012zhiwen 发表于 2024-9-5 15:18:44
ppll2030 发表于 2024-9-5 14:23
把要复制的名单命名为1.txt
把代码保存为bat文件,跟1.txt放一块,运行即可。

谢谢,今晚回去试下。
2012zhiwen 发表于 2024-9-5 15:17:32
szwp 发表于 2024-9-5 09:47
可以先去cmd里练习,先进入目标文件夹
for /f %f in (l.txt) do md %~pf&copy %f %~pf

感谢提供帮助,

点评

%~pf前要加路径可以是.  详情 回复 发表于 2024-9-5 15:20
ppll2030 发表于 2024-9-5 14:23:27
把要复制的名单命名为1.txt
把代码保存为bat文件,跟1.txt放一块,运行即可。
  1. @echo off
  2. set "dest=D:\newfolder"
  3. for /f "delims=" %%i in (1.txt) do (xcopy "%%i" "%dest%%%~pi")
  4. echo 文件复制完成。
  5. pause
复制代码


点评

测试可以。谢谢  详情 回复 发表于 2024-9-5 20:53
今晚回去试下。  详情 回复 发表于 2024-9-5 15:18
plutoshen 发表于 2024-9-5 11:44:24
2012zhiwen 发表于 2024-9-5 11:15
谢谢,我去工地搬砖了。我先看看三楼的用法,你这个还没试,一步一步来。

哪个简单直观,你自己看看,没必要舍近求远。
2012zhiwen 发表于 2024-9-5 11:17:16

谢谢,现在还在工地,晚上试下。
2012zhiwen 发表于 2024-9-5 11:15:43
plutoshen 发表于 2024-9-5 08:35
人呢?问题解决没有也不吱一声。

谢谢,我去工地搬砖了。我先看看三楼的用法,你这个还没试,一步一步来。

点评

哪个简单直观,你自己看看,没必要舍近求远。  详情 回复 发表于 2024-9-5 11:44
szwp 发表于 2024-9-5 09:47:24
可以先去cmd里练习,先进入目标文件夹
for /f %f in (l.txt) do md %~pf&copy %f %~pf

点评

感谢提供帮助,  详情 回复 发表于 2024-9-5 15:17
holley2008 发表于 2024-9-5 09:04:18
2012zhiwen 发表于 2024-9-4 14:31
感谢,成功了一半,这个批处理把要复制的文件生成了文件夹,如下图
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 设置源目录和目标目录
  4. set "sourceRoot=C:"
  5. set "targetRoot=D:\newfolder"

  6. :: 设置包含文件路径的txt文件
  7. set "listFile=filelist.txt"

  8. :: 检查txt文件是否存在
  9. if not exist "%listFile%" (
  10.     echo 错误:文件列表 %listFile% 不存在。
  11.     goto :eof
  12. )

  13. :: 读取txt文件并复制文件
  14. for /f "usebackq delims=" %%a in ("%listFile%") do (
  15.     set "sourcePath=%%a"
  16.     set "targetPath=!sourcePath:%sourceRoot%=%targetRoot%!"
  17.    
  18.     :: 创建目标目录(如果不存在)
  19.     for %%I in ("!targetPath!") do set "targetDir=%%~dpI"
  20.     if not exist "!targetDir!" mkdir "!targetDir!"
  21.    
  22.     :: 复制文件
  23.     if exist "!sourcePath!" (
  24.         echo 正在复制 "!sourcePath!" 到 "!targetPath!"
  25.         copy "!sourcePath!" "!targetPath!" /Y
  26.     ) else (
  27.         echo 警告:源文件 "!sourcePath!" 不存在。
  28.     )
  29. )

  30. echo 复制完成。

  31. endlocal
复制代码

点评

测试可以。谢谢。  详情 回复 发表于 2024-9-5 20:53
谢谢,现在还在工地,晚上试下。  详情 回复 发表于 2024-9-5 11:17
plutoshen 发表于 2024-9-5 08:35:03
人呢?问题解决没有也不吱一声。

点评

谢谢,我去工地搬砖了。我先看看三楼的用法,你这个还没试,一步一步来。  详情 回复 发表于 2024-9-5 11:15
plutoshen 发表于 2024-9-4 15:15:13
holley2008 发表于 2024-9-4 11:54:54
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 设置源目录和目标目录
  4. set "sourceRoot=C:"
  5. set "targetRoot=D:\newfolder"

  6. :: 设置包含文件路径的txt文件
  7. set "listFile=filelist.txt"

  8. :: 检查txt文件是否存在
  9. if not exist "%listFile%" (
  10.     echo 错误:文件列表 %listFile% 不存在。
  11.     goto :eof
  12. )

  13. :: 读取txt文件并复制文件
  14. for /f "usebackq delims=" %%a in ("%listFile%") do (
  15.     set "sourcePath=%%a"
  16.     set "targetPath=!sourcePath:%sourceRoot%=%targetRoot%!"
  17.    
  18.     :: 创建目标目录(如果不存在)
  19.     if not exist "!targetPath:~0,-1!" mkdir "!targetPath:~0,-1!"
  20.    
  21.     :: 复制文件
  22.     echo 正在复制 "!sourcePath!" 到 "!targetPath!"
  23.     copy "!sourcePath!" "!targetPath!" /Y
  24. )

  25. echo 复制完成。

  26. endlocal
复制代码

点评

太麻烦了,用rsync一行命令就解决。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=442250  发表于 2024-9-4 15:18
感谢,成功了一半,这个批处理把要复制的文件生成了文件夹,如下图 [attachimg]546675[/attachimg]  详情 回复 发表于 2024-9-4 14:31
遗忘ing 发表于 2024-9-4 11:50:20
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-20 01:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表