|
CMD: проблема с текущим временем в цикле | ☑ | ||
|---|---|---|---|---|
|
0
andrewks
18.05.12
✎
10:00
|
есть такой батник:
echo Backup started at time: %date% %time% >> %LOGFN% FOR /F "eol=; tokens=1,2 delims=," %%i in (inpath.txt) do ( echo Backup files in %%i started at time: %date% %time% >> %LOGFN% "C:\Program Files\7-Zip\7z.exe" a -t7z -mx=7 -r -ssw "%%j_%MYDATE%.7z" "%%i" >> %LOGFN% ) echo Backup stoped at time: %date% %time% >> %LOGFN% почему-то в строке, выводящей дату/время, которая находится в цикле, значения даты/времени показываются не на момент фактического выполнения этой строки, а на начало захода в цикл как исправить? |
|||
|
1
andrewks
18.05.12
✎
10:41
|
ап
|
|||
|
2
Jump
18.05.12
✎
10:52
|
Может у тебя просто скрипт быстро отрабатывает, и время не успевает изменится.
|
|||
|
3
andrewks
18.05.12
✎
10:56
|
(2) в том-то и дело, что нет
|
|||
|
4
Jump
18.05.12
✎
11:15
|
(3)О как оказывается, нарыл в интернетах - командный интерпретатор запоминает %time% и на время выполнения она является константой.
Видимо логика оптимизации кода перед исполнением у интерпретатора такая. |
|||
|
5
andrewks
18.05.12
✎
11:18
|
(4) не совсем так. в "основном" коде использование %time% даёт текущее время, проблема именно в цикле проявляется
|
|||
|
6
andrewks
18.05.12
✎
11:19
|
щас попробую вызывать другой батник, передав ему параметр выходного файла, наверное, прокатит, хотя и изврат
|
|||
|
7
Jump
18.05.12
✎
11:20
|
(4)Ну я про цикл и говорю - чтобы избежать многократного вызова, интерпретатор запоминает первый.
|
|||
|
8
andrewks
18.05.12
✎
20:54
|
обошёл так:
|
| Форум | Правила | Описание | Секции | Поиск |