如何通过批处理从文件路径列表中复制文件?
批处理读取文件路径并复制到U盘的解决方案
方案一:基于已生成的dir.txt文件复制
如果你已经通过原代码生成了D:\Folder\dir.txt,可以用以下代码读取其中的路径并复制到U盘:
@echo off setlocal enabledelayedexpansion rem 设置U盘目标文件夹,可手动修改盘符;若脚本在U盘内,替换为%~d0\LoginDataBackup可自动适配盘符 set "target_dir=E:\LoginDataBackup" rem 确保目标文件夹存在,避免复制失败 if not exist "%target_dir%" mkdir "%target_dir%" rem 逐行读取dir.txt中的文件路径并执行复制 for /f "delims=" %%i in (D:\Folder\dir.txt) do ( copy "%%i" "%target_dir%\" /y echo 已复制文件: %%i ) echo 所有文件复制完成! pause endlocal
方案二:直接查找并复制(无需中间文件)
更高效的方式是跳过生成dir.txt的步骤,直接查找文件并完成复制:
@echo off setlocal enabledelayedexpansion set "target_dir=E:\LoginDataBackup" if not exist "%target_dir%" mkdir "%target_dir%" set "file_count=0" rem 遍历所有Login Data文件并复制,同时计数 for /f "delims=" %%i in ('dir /b /s "C:\Users\MyName\AppData\Local\Microsoft\Edge\Login Data" 2^>nul') do ( copy "%%i" "%target_dir%\" /y set /a file_count+=1 echo 已复制: %%i ) echo 共完成 !file_count! 个文件的复制 pause endlocal
关键说明
delims=:保证读取包含空格的完整文件路径,避免路径被截断/y:复制时自动覆盖已存在的文件,无需手动确认%~d0:如果将脚本放在U盘根目录,用这个变量可以自动获取U盘盘符,实现盘符无关的自动复制- 由于操作涉及浏览器敏感数据文件,杀毒软件大概率会拦截,需要手动允许或添加信任
内容的提问来源于stack exchange,提问作者user20977725
相关产品推荐
相关产品推荐

