吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 370|回复: 7
收起左侧

[经验求助] 复制文件夹名称和里面文件名称,生成全新的文件夹和文件。

[复制链接]
anhuiqiankun 发表于 2024-8-24 17:07
180吾爱币
复制文件夹名称和里面文件名称,生成全新的文件夹和里面文件。也就是复制粘贴,唯一区别就是,里面文件可以没有实质内容,文件名称保留。希望有好的批处理工具。

最佳答案

查看完整内容

原生的工具,有FreeFileSync,Beyond Compare,Total Commander,但是都能直接复制,没办法直接达到你要的这个效果,你可以写一个bat脚本 @echo off xcopy "源文件夹路径" "目标文件夹路径" /t /e for /r "目标文件夹路径" %%f in (*) do ( echo. > "%%f" ) /t:仅复制文件夹结构。 /e:包括空文件夹。 echo. > "%%f":在每个文件中写入一个空行,从而创建一个空文件。 将上面的脚本保存为 .bat 文件,替换 源 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

WenJiaxin02 发表于 2024-8-24 17:07
原生的工具,有FreeFileSync,Beyond Compare,Total Commander,但是都能直接复制,没办法直接达到你要的这个效果,你可以写一个bat脚本

@echo off
xcopy "源文件夹路径" "目标文件夹路径" /t /e
for /r "目标文件夹路径" %%f in (*) do (
    echo. > "%%f"
)


/t:仅复制文件夹结构。
/e:包括空文件夹。
echo. > "%%f":在每个文件中写入一个空行,从而创建一个空文件。
将上面的脚本保存为 .bat 文件,替换 源文件夹路径 和 目标文件夹路径,然后运行脚本。
使用时注意一下
xcopy "C:\Source Folder" "D:\Destination Folder" /t /e
路径格式:在 Windows 中,路径应使用反斜杠 \,如 C:\Users\Username\Documents。不要忘记在路径的最后添加反斜杠 \。
引号:如果路径中包含空格(如 C:\Users\My Documents),请务必将路径用双引号 "" 包围,以避免误解析。
WenJiaxin02 发表于 2024-8-24 19:02
Shiliu2713 发表于 2024-8-24 19:09
所谓的生成全新的,相当于把原始路径的文件夹以及文件目录结构,复制一份到新的路径里面去是吧?
 楼主| anhuiqiankun 发表于 2024-8-24 21:00
WenJiaxin02 发表于 2024-8-24 19:02
原生的工具,有FreeFileSync,Beyond Compare,Total Commander,但是都能直接复制,没办法直接达到你要的 ...

非常感谢,目前我测试有还遇到2个问题。
1是如果文件夹是中文,那么这里xcopy "源文件夹路径" "目标文件夹路径" /t /e,怎么写,直接复制没成功,但是英文或者数字文件夹成功了。
2.我成功复制了文件夹,文件夹里面文件没成功,子文件夹里面文件也没有。
 楼主| anhuiqiankun 发表于 2024-8-24 21:06
像孩子y1样 发表于 2024-8-24 19:09
所谓的生成全新的,相当于把原始路径的文件夹以及文件目录结构,复制一份到新的路径里面去是吧?

对,达到复制粘贴效果,就是不需要文件实质内容,保留文件名称。
 楼主| anhuiqiankun 发表于 2024-8-25 09:21
WenJiaxin02 发表于 2024-8-24 19:02
原生的工具,有FreeFileSync,Beyond Compare,Total Commander,但是都能直接复制,没办法直接达到你要的 ...

非常感谢,中文文件夹我也测试成功了。这个思路也解决了很多问题
WenJiaxin02 发表于 2024-8-25 10:14
anhuiqiankun 发表于 2024-8-24 21:00
非常感谢,目前我测试有还遇到2个问题。
1是如果文件夹是中文,那么这里xcopy "源文件夹路径" "目标文件 ...

在批处理脚本中,如果路径包含中文或其他非英文字符,可能会遇到编码问题。要确保路径处理正确,可以尝试以下方法:

确保路径使用双引号:如果路径中包含空格或特殊字符,请用双引号将路径包裹起来。
使用绝对路径:使用完整的绝对路径(如 C:\Users\用户名\Documents\测试文件夹)而不是相对路径。
检查系统编码:确保批处理文件的编码为 ANSI 或 UTF-8(无 BOM),因为有些系统或编辑器可能会默认使用 UTF-8 带 BOM,这可能导致路径解析失败。

或者改一下代码

@echo off
xcopy "源文件夹路径" "目标文件夹路径" /t /e
for /r "源文件夹路径" %%f in (*) do (
    set "target_file=目标文件夹路径\%%~pnxf"
    if not exist "%%f" (
        echo. > "%%f"
    )
)


脚本逻辑说明:

%%~pnxf 会保留路径和文件名,从而确保子文件夹内的文件也被正确地创建。
if not exist 检查目标文件是否存在,如果不存在,则创建空文件。
检查目标文件夹:确保目标文件夹路径正确且文件夹存在。脚本会在目标路径下创建与源路径相同的文件夹和文件名结构。


@echo off
xcopy "源文件夹路径" "目标文件夹路径" /t /e
for /r "源文件夹路径" %%f in (*) do (
    echo 处理文件: %%f
    set "target_file=目标文件夹路径\%%~pnxf"
    echo 创建目标文件: %target_file%
    echo. > "%target_file%"
)

免费评分

参与人数 1热心值 +1 收起 理由
anhuiqiankun + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 20:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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