bat文件如何读取ini配置文件作为xcopy的参数

有一个test.int文件,内容如下From_Dir=C:\To_Dir=D:\我要写一个bat文件,读取这个文件中的这两个参数作为xcopy的参数使用,怎么写?... 有一个test.int文件,内容如下
From_Dir=C:\
To_Dir=D:\
我要写一个bat文件,读取这个文件中的这两个参数作为xcopy的参数使用,怎么写?
展开
 我来答
xxpinqz
推荐于2017-11-25 · TA获得超过1324个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:1356万
展开全部
删除最后一行开头echo 即可传送xcopy需要的变量
@echo off
for /f "tokens=1,2 delims==" %%i in (test.ini) do (
if "%%i"=="From_Dir" set Srcpath=%%j
if "%%i"=="To_Dir" set Dstpath=%%j
)
echo xcopy "%Srcpath%" "%Dstpath%"
追问
谢谢你的回答,可是不好用,do后面的括号里没有进去的样子。我在do里面加了个pause,没有停顿。
ini文件跟bat文件保存在同一个文件夹下面。
追答

我不知道你是怎么改的。看下图:

 

来自:求助得到的回答
RMS365
2019-05-04 · TA获得超过157个赞
知道答主
回答量:26
采纳率:0%
帮助的人:1.9万
展开全部
@echo off
color 0a
title Unified Packing File 1.0
pushd "%~dp0"

SETLOCAL ENABLEDELAYEDEXPANSION

goto DEV_POINT

if "%~1" equ "" (
    echo Please drag and drop a file or folder onto the batch program icon.
    goto NORMAL_EXIT
)

:DEV_POINT

set APP_HOME=%~dp0
set CFG=config.ini

if not exist "%CFG%" (
    echo %CFG% not found.
    goto NORMAL_EXIT
)

for /f "usebackq eol=# tokens=1* delims==" %%i in ("%CFG%") do (
    if "%%i" equ "__COMMENT_FILE" (
        call :FN_TRIM "%%j"
        set __COMMENT_FILE=!RTN_TRIM!
    ) else if "%%i" equ "__LOCK" (
        call :FN_TRIM "%%j"
        set __LOCK=!RTN_TRIM!
    ) else if "%%i" equ "__TEST" (
        call :FN_TRIM "%%j"
        set __TEST=!RTN_TRIM!
    ) else if "%%i" equ "__PASSWORD" (
        set __PASSWORD=%%j
    ) else if "%%i" equ "__ENCRYPT_BOTH" (
        call :FN_TRIM "%%j"
        set __ENCRYPT_BOTH=!RTN_TRIM!
    ) else if "%%i" equ "__VOLUMES_SIZE" (
        call :FN_TRIM "%%j"
        set __VOLUMES_SIZE=!RTN_TRIM!
    )
)

echo __COMMENT_FILE[%__COMMENT_FILE%]
echo __LOCK[%__LOCK%]
echo __TEST[%__TEST%]
echo __PASSWORD[%__PASSWORD%]
echo __ENCRYPT_BOTH[%__ENCRYPT_BOTH%]
echo __VOLUMES_SIZE[%__VOLUMES_SIZE%]
goto NORMAL_EXIT



:NORMAL_EXIT
popd
pause
exit


@rem ##############################FBP Begin

@title Function Batch Program 1.0
@color 0a
@echo Note: I can't run independently.
@ping /n 3 127.0.0.1 > nul
@exit

rem eg. call :FN_LENGTH " hey  "
rem 参数必须使用双引号包裹,不允许包含特殊字符,如:'">&$*:<?^等等。
:FN_LENGTH
set /a RTN_LENGTH=0
set _LENGTH_ORI_STR=%*
set _LENGTH_ORI_STR=%_LENGTH_ORI_STR:~1,-1%
set _SURPLUS=%_LENGTH_ORI_STR%
:PROC_LENGTH_GAIN_CHAR
for /f "tokens=*" %%i in ("!_SURPLUS!") do (
    set _SURPLUS=!_SURPLUS:~1!
    call :PROC_LENGTH_GAIN_CHAR
    set /a RTN_LENGTH+=1
)
goto :EOF

rem eg. call :FN_TRIM "%%j"
rem 参数必须使用双引号包裹,不允许包含特殊字符,如:'">&$*:<?^等等。
:FN_TRIM
set _TRIM_ORI_STR=%*
set _TRIM_ORI_STR=%_TRIM_ORI_STR:~1,-1%
call :FN_LENGTH "%_TRIM_ORI_STR%"
set /a _STR_LENGTH=%RTN_LENGTH%
set _FILTER=%_TRIM_ORI_STR: =%
if "%_FILTER%" equ "" (
    set RTN_TRIM=
    goto :EOF
)
set _FILTER=%_FILTER:    =%
if "%_FILTER%" equ "" (
    set RTN_TRIM=
    goto :EOF
)
call :FN_LENGTH "%_FILTER%"
set /a _FILTER_LENGTH=%RTN_LENGTH%
if %_FILTER_LENGTH% equ 1 (
    set RTN_TRIM=!_FILTER!
    goto :EOF
)
if %_STR_LENGTH% equ 0 (
    set RTN_TRIM=
    goto :EOF
)
if %_STR_LENGTH% equ 1 (
    set RTN_TRIM=!_TRIM_ORI_STR!
    goto :EOF
)
set /a _LOOP_END=%_STR_LENGTH% - 1
set /a _STR_START=0
set /a _STR_END=0
for /l %%i in (0,1,%_LOOP_END%) do (
    set _CHAR=!_TRIM_ORI_STR:~%%i,1!
    if "!_CHAR!" equ " " (
        echo NOP > nul
    ) else if "!_CHAR!" equ "    " (
        echo NOP > nul
    ) else (
        set /a _STR_START=%%i
        goto :PROC_TRIM_FIND_END
    )
)
:PROC_TRIM_FIND_END
for /l %%i in (%_LOOP_END%,-1,0) do (
    set _CHAR=!_TRIM_ORI_STR:~%%i,1!
    if "!_CHAR!" equ " " (
        echo NOP > nul
    ) else if "!_CHAR!" equ "    " (
        echo NOP > nul
    ) else (
        set /a _STR_END=%%i
        goto :PROC_TRIM_MERGE
    )
)
:PROC_TRIM_MERGE
set /a _EXCEPT=-1 * (%_LOOP_END% - %_STR_END%)
if %_EXCEPT% equ 0 (
    set RTN_TRIM=!_TRIM_ORI_STR:~%_STR_START%!
) else (
    set RTN_TRIM=!_TRIM_ORI_STR:~%_STR_START%,%_EXCEPT%!
)
goto :EOF

rem eg. call :FN_SET_VAL GENDER " Male  "
rem 估计不可行
:FN_SET_VAL
set %1=%2
goto :EOF

@rem ##############################FBP End

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式