无忧启动论坛

标题: 如何复制txt内容的指定文件到新目录,并且保存目录结构? [打印本页]

作者: 2012zhiwen    时间: 2024-9-4 11:05
标题: 如何复制txt内容的指定文件到新目录,并且保存目录结构?
本帖最后由 2012zhiwen 于 2024-9-4 11:10 编辑

有一个txt文件,如下如





如何复制txt内容的指定文件到新目录,并且保存目录结构。
例如:
需要复制“C:\Windows\SysWOW64\crypt32.dll”到“D:\newfolder\Windows\SysWOW64\crypt32.dll


请问用批处理如何写呢?感谢感谢!!!



作者: 遗忘ing    时间: 2024-9-4 11:50
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝
作者: holley2008    时间: 2024-9-4 11: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
复制代码

作者: 2012zhiwen    时间: 2024-9-4 14:31
holley2008 发表于 2024-9-4 11:54

感谢,成功了一半,这个批处理把要复制的文件生成了文件夹,如下图


作者: plutoshen    时间: 2024-9-4 15:15
试试这个,一行命令解决

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=442250
作者: plutoshen    时间: 2024-9-5 08:35
人呢?问题解决没有也不吱一声。
作者: holley2008    时间: 2024-9-5 09:04
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
复制代码

作者: szwp    时间: 2024-9-5 09:47
可以先去cmd里练习,先进入目标文件夹
for /f %f in (l.txt) do md %~pf&copy %f %~pf
作者: 2012zhiwen    时间: 2024-9-5 11:15
plutoshen 发表于 2024-9-5 08:35
人呢?问题解决没有也不吱一声。

谢谢,我去工地搬砖了。我先看看三楼的用法,你这个还没试,一步一步来。
作者: 2012zhiwen    时间: 2024-9-5 11:17
holley2008 发表于 2024-9-5 09:04

谢谢,现在还在工地,晚上试下。
作者: plutoshen    时间: 2024-9-5 11:44
2012zhiwen 发表于 2024-9-5 11:15
谢谢,我去工地搬砖了。我先看看三楼的用法,你这个还没试,一步一步来。

哪个简单直观,你自己看看,没必要舍近求远。
作者: ppll2030    时间: 2024-9-5 14:23
把要复制的名单命名为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
复制代码



作者: 2012zhiwen    时间: 2024-9-5 15:17
szwp 发表于 2024-9-5 09:47
可以先去cmd里练习,先进入目标文件夹
for /f %f in (l.txt) do md %~pf&copy %f %~pf

感谢提供帮助,
作者: 2012zhiwen    时间: 2024-9-5 15:18
ppll2030 发表于 2024-9-5 14:23
把要复制的名单命名为1.txt
把代码保存为bat文件,跟1.txt放一块,运行即可。

谢谢,今晚回去试下。
作者: szwp    时间: 2024-9-5 15:20
2012zhiwen 发表于 2024-9-5 15:17
感谢提供帮助,

%~pf前要加路径可以是.
作者: 2012zhiwen    时间: 2024-9-5 20:53
holley2008 发表于 2024-9-5 09:04

测试可以。谢谢。
作者: 2012zhiwen    时间: 2024-9-5 20:53
ppll2030 发表于 2024-9-5 14:23
把要复制的名单命名为1.txt
把代码保存为bat文件,跟1.txt放一块,运行即可。

测试可以。谢谢
作者: 旭东    时间: 2024-9-5 21:11
学习了
作者: xmzhqw    时间: 2024-9-6 20:47
论坛中找到的,我一直在用,还不错。把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
作者: cqh    时间: 前天 07:47
学习
作者: 祢鸢梦庭声    时间: 昨天 20:10
学习了




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3