Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


frid-karatel, если вы определяете переменную внутри блока кода ( цикл for, if и т.д. ), ограниченного скобками, то повторное использование этой переменной требует установки 'setlocal enabledelayedexpansion' и использование переменных, заключенных в '!' а не в '%'. В вашем батнике это должно быть так, не проверял:
Код: Выделить весь код
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET "$BACKUP_DIR=S:\Backup"
SET "$WINRAR=C:\Program Files\WinRAR\WinRAR.exe"
SET "$MODIFIED_SINCE=20110323"
SET "$FOLDER:01=C:\Documents"
SET "$FOLDER:02=C:\Letters"
SET "$FOLDER:03=C:\ThirdFolder"

FOR /f "tokens=2 delims==" %%i IN ('SET $FOLDER') DO (

	SET "$FOLDER_CURRENT=%%i"
	PUSHD "!$FOLDER_CURRENT!"
	FOR /f "tokens=1" %%i IN ('DIR /s /tw /a-d') DO (
		IF NOT DEFINED $IS_MODIFIED CALL:@check %%i
	)
     
       POPD
       IF NOT DEFINED $IS_MODIFIED GOTO:@continue
       "%$WINRAR%" A -AG+YYYY-MM-DD CH -TL -DH -EP1 -ISNUL -M5 -S -Y "!$FOLDER_CURRENT!" ""

      :@continue
      REM
)

GOTO:@exit

:@check
FOR /f "tokens=1-3 delims=." %%i IN ("%1") DO (
	IF %%k%%j%%i geq %$MODIFIED_SINCE% SET $IS_MODIFIED=1
)
GOTO:eof

:@exit
PAUSE
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:00, 08-05-2011 | #14