ini阅读后的批处理文件条件拷贝

时间:2013-01-24 12:12:33

标签: batch-file conditional ini

在我的电脑中,我有一系列位于路径C:\Meleena

中的文件

在之前的一些安装中,此路径不同(它是C:\second_path\Meleena)。

将每台计算机修复到路径C:\Meleena后,我有两种不同的情况:

  • 我只有C:\Meleena
  • 的电脑
  • 我有C:\second_path\Meleena
  • 的电脑

因此我可能会遇到C:\Windows\Settings.ini这样的情况:

[Summer]
Meleena=C:\Meleena

[Summer]
Meleena=C:\second_path\Meleena

我想知道批处理文件是否可以从C:\Windows\Settings.ini [Summer]部分读取并执行以下操作:

  • 如果Meleena = C:\Meleena没有做任何事情;

  • 如果Meleena = C:\second_path\Meleena

将所有文件从C:\Meleena复制到C:\second_path\Meleena

是否有可能从Settings.ini获取批处理文件以阅读此部分并进行有条件的复制?

非常感谢你们所有人。

Meleena

2 个答案:

答案 0 :(得分:0)

这应该这样做

for /f "skip=2" %%a in ('find /v "[Summer]" C:\Windows\Settings.ini') do (
if "%%a"=="C:\second_path\Meleena" (
xcopy C:\Meleena C:\second_path\Meleena
)
)

答案 1 :(得分:0)

从参数开始:C:> ini.bat settings.ini Summer Meleena C:\ Meleena

ini.bat:

@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%~1
set area=[%~2]
set key=%~3
set val=%~4
set currarea=
for /f "usebackq delims=" %%a in ("!file!") do (
    set ln=%%a
    if "x!ln:~0,1!"=="x[" (
        set currarea=!ln!
    ) else (
        for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
            set currkey=%%b
            set currval=%%c
            if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
                if not "x!val!"=="x!currval!" (
                    echo !currval!
                    xcopy !val! !currval! /H /E /G /Q /R /Y
                )
            )
        )
    )
)
endlocal

Read ini from windows batch file