吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 180|回复: 3
收起左侧

[其他求助] 来个大神,写一段批处理代码!

[复制链接]
li5539802 发表于 2026-7-9 00:16
50吾爱币
在当前目录下的"补丁文件夹"里,搜索名为data的文件夹,补丁文件夹里包含一个data文件夹,与一个不确定名字的文件夹,
这个不确定文件夹里又包含一个data文件夹,用批处理找到这个data文件夹并复制指定文件进去。

最佳答案

查看完整内容

nul if errorlevel 1 ( echo [失败] 复制文件到 %PATCH_DIR%\%TARGET_DATA% 失败! ) else ( echo [成功] 已将文件复制到 %PATCH_DIR%\%TARGET_DATA% ) pause> 使用说明 将上述代码保存为 .bat 文件(例如 copy_to_data.bat)。 确保该 .bat 文件与“补丁文件夹”位于同一目录下。 打开命令提示符,运行: text copy_to_data.bat "要复制的文件完整路径" 例如: text copy_to_data.bat "D:%u ...

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

shzjz123 发表于 2026-7-9 00:16
本帖最后由 shzjz123 于 2026-7-9 04:29 编辑

<@echo off
setlocal enabledelayedexpansion

:: 设定补丁文件夹名称(固定)
set "PATCH_DIR=补丁文件夹"

:: 检查补丁文件夹是否存在
if not exist "%PATCH_DIR%" (
    echo [错误] 找不到补丁文件夹:%PATCH_DIR%
    exit /b 1
)

:: 进入补丁文件夹
pushd "%PATCH_DIR%" || exit /b 1

:: 查找第一级子目录中除了 data 以外的、且内部包含 data 子目录的文件夹
set "TARGET_DATA="
for /d %%D in (*) do (
    if /i not "%%~nxD"=="data" (
        if exist "%%D\data\" (
            set "TARGET_DATA=%%D\data"
            goto :found
        )
    )
)

:found
popd

:: 检查是否找到目标
if not defined TARGET_DATA (
    echo [错误] 未找到合适的 data 文件夹(要求:位于不确定名字的文件夹内)
    exit /b 1
)

:: 获取要复制的文件(通过命令行参数传入,例如: script.bat "C:\source\file.txt")
set "SOURCE_FILE=%~1"
if "%SOURCE_FILE%"=="" (
    echo [错误] 请指定要复制的文件路径,作为脚本的第一个参数。
    echo 用法:%~nx0 "文件路径"
    exit /b 1
)

if not exist "%SOURCE_FILE%" (
    echo [错误] 源文件不存在:%SOURCE_FILE%
    exit /b 1
)

:: 执行复制(/y 表示覆盖目标同名文件,无提示)
copy /y "%SOURCE_FILE%" "%PATCH_DIR%\%TARGET_DATA%" >nul
if errorlevel 1 (
    echo [失败] 复制文件到 %PATCH_DIR%\%TARGET_DATA% 失败!
) else (
    echo [成功] 已将文件复制到 %PATCH_DIR%\%TARGET_DATA%
)

pause>


使用说明
将上述代码保存为 .bat 文件(例如 copy_to_data.bat)。

确保该 .bat 文件与“补丁文件夹”位于同一目录下。

打开命令提示符,运行:

text
copy_to_data.bat "要复制的文件完整路径"
例如:

text
copy_to_data.bat "D:\update\patch.dat"
脚本会自动定位到“补丁文件夹”下那个名称不固定的文件夹中的 data 目录,并将文件复制进去。
 楼主| li5539802 发表于 2026-7-9 12:08
shzjz123 发表于 2026-7-9 00:16
nul
if errorlevel 1 (
    echo [失败] 复制文件到 %PATCH_DIR%\%TARGET_DATA% 失败!

补丁文件夹 里还有一个包含data的文件夹Resources,该怎么排除?大神能不能在修改下代码?感谢!
shzjz123 发表于 2026-7-9 12:24
li5539802 发表于 2026-7-9 12:08
补丁文件夹 里还有一个包含data的文件夹Resources,该怎么排除?大神能不能在修改下代码?感谢!

@echo off
setlocal enabledelayedexpansion

:: ============================================
:: 脚本功能:在“补丁文件夹”下查找除 data 和 Resources 外,
::         第一个含有 data 子目录的文件夹,并将指定文件复制到其 data 内。
:: 用法:脚本名 "要复制的文件路径"
:: ============================================

set "PATCH_DIR=补丁文件夹"

:: 检查补丁文件夹是否存在
if not exist "%PATCH_DIR%" (
    echo [错误] 找不到补丁文件夹:%PATCH_DIR%
    exit /b 1
)

:: 进入补丁文件夹
pushd "%PATCH_DIR%" || exit /b 1

:: 查找目标:排除 data 和 Resources,且内部包含 data 子目录
set "TARGET_DATA="
for /d %%D in (*) do (
    if /i not "%%~nxD"=="data" (
        if /i not "%%~nxD"=="Resources" (
            if exist "%%D\data\" (
                set "TARGET_DATA=%%D\data"
                goto :found
            )
        )
    )
)

:found
popd

:: 检查是否找到目标
if not defined TARGET_DATA (
    echo [错误] 未找到合适的 data 文件夹(已排除 data 和 Resources 文件夹)
    exit /b 1
)

:: 获取要复制的文件(命令行参数)
set "SOURCE_FILE=%~1"
if "%SOURCE_FILE%"=="" (
    echo [错误] 请指定要复制的文件路径,作为脚本的第一个参数。
    echo 用法:%~nx0 "文件路径"
    exit /b 1
)

if not exist "%SOURCE_FILE%" (
    echo [错误] 源文件不存在:%SOURCE_FILE%
    exit /b 1
)

:: 执行复制(/y 覆盖目标同名文件,无提示)
copy /y "%SOURCE_FILE%" "%PATCH_DIR%\%TARGET_DATA%" >nul
if errorlevel 1 (
    echo [失败] 复制文件到 %PATCH_DIR%\%TARGET_DATA% 失败!
) else (
    echo [成功] 已将文件复制到 %PATCH_DIR%\%TARGET_DATA%
)

pause

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
li5539802 + 1 + 1 热心回复!

查看全部评分

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

本版积分规则

返回列表

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

GMT+8, 2026-7-19 08:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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