У меня есть 3 файла:
- текстовый файл
- INI-файл
- командный файл
Это INI-файл:
[ABC]
COPYALL=YES
FILEFILTER1=ABS
FILEFILTER2=DEF
FILEFILTER3=SEFS
FILEFILTER4=CXC
FILEFILTER5=VFV
FILEFILTER6=WRE
FOLDERNAME1=123
FOLDERNAME2=321
[PDF]
COPYALL=NO
FILEFILTER1=GRE
FILEFILTER2=GA
FILEFILTER3=GC
FILEFILTER4=VF
FILEFILTER5=BFA
FILEFILTER6=FEW
FILEFILTER7=QWE
FOLDERNAME1=WDQ
FOLDERNAME2=ZXC
Текстовый файл содержит:
ID=ABC
Таким образом, пакетный файл будет знать, какой раздел нужно искать в .ini-файле:
@ECHO OFF
SETLOCAL
SET INIFile="configproto - Copy (2).ini"
SET "FLAG="
for /f "tokens=1*delims=:" %%G in ('findstr /n "^" POS_User.txt') do if %%G equ 2 (
echo %%H
set "posuser=%%H"
)
set posuser=%posuser:~13%
echo This is company ID %posuser%
:_AFTER
for /f "usebackq tokens=1,*eol=|delims==" %%a in (%INIFile%) do (
IF "%%b"=="" (
REM No "=" so section
IF /i "%%a"=="[%posuser%]" (SET flag=Y) ELSE (SET "flag=")
) ELSE IF defined flag (
REM data line - only if FLAG is defined
REM set values defined
SET "%%a=%%b"
REM pick particular values
if /i "%%a"=="COPYALL" set "COPYALL=%%b"
if /i "%%a"=="FILEFILTER1" set "FILEFILTER1=%%b"
if /i "%%a"=="FILEFILTER2" set "FILEFILTER2=%%b"
if /i "%%a"=="FILEFILTER3" set "FILEFILTER3=%%b"
if /i "%%a"=="FILEFILTER4" set "FILEFILTER4=%%b"
if /i "%%a"=="FILEFILTER5" set "FILEFILTER5=%%b"
if /i "%%a"=="FILEFILTER6" set "FILEFILTER6=%%b"
)
)
echo %posuser%
goto :_COPYALL
::COPY ALL FOLDERS AND FILES EXCLUDE CERTAIN FILES
:_COPYALL
echo %FILEFILTER1%>test.txt
echo %FILEFILTER2%>>test.txt
echo %FILEFILTER3%>>test.txt
echo %FILEFILTER4%>>test.txt
echo %FILEFILTER5%>>test.txt
echo %FILEFILTER6%>>test.txt
if "%COPYALL%" EQU "YES" (
if not exist C:\Users\GINNY\Desktop\experimentfolder\pic (
mkdir C:\Users\GINNY\Desktop\experimentfolder\pic
)
del C:\Users\GINNY\Desktop\experimentfolder\pic\*.* /Q /F
xcopy C:\Users\GINNY\Desktop\AllOutlets C:\Users\GINNY\Desktop\experimentfolder /exclude:test.txt /Y /S
del C:\Users\GINNY\Desktop\AllOutlets /Q /F
del test.txt /Q /F
) else (
echo NO COPY ALL
)
exit /b
Как видите, текущий код может занять только 6 фильтров.Но если другой раздел имеет 7 фильтров, он не займет 7-й.Как мне кодировать, чтобы пакетный файл получал Х-количество фильтров, чтобы пользователи могли просто фильтровать, сколько файлов они хотят?Использование Windows 7, если это поможет.