1

在我的电脑中,我有一系列位于路径中的文件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:\MeleenaC:\second_path\Meleena

是否有可能获得一个批处理文件来读取本节Settings.ini并进行有条件的复制?

非常感谢你们所有人。

美莲娜

4

2 回答 2

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
)
)
于 2013-01-24T12:41:37.560 回答
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

从 Windows 批处理文件中读取 ini

于 2013-01-24T14:27:52.633 回答