2013-01-24 81 views
1

在我的電腦我有一系列是在Path C:\Meleena批處理文件條件的複印INI閱讀後

在先前的一些系統中,這個路徑是不同的(這是C:\second_path\Meleena)文件。

每一個電腦固定在路徑C:\Meleena後,我有2個不同的場景:

  • PC,我只有C:\Meleena
  • PC在那裏我有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本節,並做了有條件複製所有文件?

非常感謝大家。

Meleena

回答

0

開始與參數:C:> ini.bat的Settings.ini夏季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

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 
) 
)