Cepreu^
Новый пользователь
- Сообщения
 - 3
 
- Реакции
 - 0
 
Здравствуйте,  помогите  разобраться.
Написал простой батник test.bat. В результате которого выделяется год создания файла text.txt.
Код работает, результат правильный. Но результат получается в виде файла temp3.tmp.
А есть необходимость использовать результат в самом коде. В общем в коде есть цикл в котором переменной %i присваивается год создания файла ( равен 2016 ). В этом же цикле сразу распечатываю значение этой переменной ( block0 ) и получаю естественно 2016. А вот дальше в этом же цикле сразу пытаюсь использовать эту переменную в условии IF %i == 2016 ( block1 ), и получаю %i не равно 2016. В общем не могу понять почему это происходит. Да и дальше в коде распечатываю значение этой переменной ( block2 , block3 ) и уже не получаю 2016, а надо получить. Как быть ? Подскажите пожалуйста.
	
	
	
		
	
		
			
		
		
	
				
			Написал простой батник test.bat. В результате которого выделяется год создания файла text.txt.
Код работает, результат правильный. Но результат получается в виде файла temp3.tmp.
А есть необходимость использовать результат в самом коде. В общем в коде есть цикл в котором переменной %i присваивается год создания файла ( равен 2016 ). В этом же цикле сразу распечатываю значение этой переменной ( block0 ) и получаю естественно 2016. А вот дальше в этом же цикле сразу пытаюсь использовать эту переменную в условии IF %i == 2016 ( block1 ), и получаю %i не равно 2016. В общем не могу понять почему это происходит. Да и дальше в коде распечатываю значение этой переменной ( block2 , block3 ) и уже не получаю 2016, а надо получить. Как быть ? Подскажите пожалуйста.
		CMD/BATCH:
	
	
	@echo off
for /r %%a in (text.txt) do (
  if  exist  %%a (
 
    rem  получение  даты  изменения  файла
 
    echo %%~ta > temp.tmp
    for /f "tokens=1 delims= " %%h in (temp.tmp) do (
      echo %%h > temp2.tmp
    )   
 
    rem  получение  года  создания  файла
 
    for /f "tokens=3 delims=." %%i in (temp2.tmp) do (
      echo %%i > temp3.tmp
     
rem --------------------------------------block0---------------------------------------     
      echo i ravno %%i
rem --------------------------------------block0---------------------------------------     
rem --------------------------------------block1---------------------------------------     
      if %%i == 2016 (
        echo i ravno 2016
      ) else ( echo i NE ravno 2016 ) 
rem --------------------------------------block1---------------------------------------     
    )
rem --------------------------------------block2---------------------------------------     
    echo i ravno %%i
rem --------------------------------------block2---------------------------------------     
  ) else ( echo file do not exist )
)
rem --------------------------------------block3---------------------------------------     
echo i ravno %%i
rem --------------------------------------block3---------------------------------------     
echo on
pause
	Вложения
			
				Последнее редактирование модератором: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							
 Кстати ,  подскажите  где  найти  подробную  инфу  по  программированию  в  cmd  или  книжку  какую ,  где  разжёваны  все  нюансы  по  cmd ?
  И  это  несмотря  на  то,  что  непосредственно  перед  if ,  значение  переменной  в  выводе  echo   равно  2016.