У меня есть следующий пакетный скрипт:
@echo off
if exist test.txt (
set /p foo=<test.txt
echo "read: %foo%"
set /A foo=foo+1
(echo %foo%)>test.txt
echo "wrote: %foo%"
) else (
(echo 1)>test.txt
)
Я ожидаю, что скрипт проверит наличие файла test.txt
.Если файл не существует, сценарий должен записать 1
в файл.Если файл существует, скрипт должен прочитать значение из файла, увеличить его на единицу, а затем записать обратно увеличенный файл.
Я ожидаю, что мой вывод будет выглядеть примерно так:
C:\opt>test.bat
C:\opt>test.bat
"read: 1"
"wrote: 2"
C:\opt>test.bat
"read: 2"
"wrote: 3"
C:\opt>test.bat
"read: 3"
"wrote: 4"
Однако вместо этого я получаю следующий вывод:
C:\opt>test.bat
C:\opt>test.bat
"read: 2"
"wrote: 2"
C:\opt>test.bat
"read: 2"
"wrote: 2"
C:\opt>test.bat
"read: 3"
"wrote: 3"
C:\opt>test.bat
"read: 3"
"wrote: 3"
C:\opt>test.bat
"read: 4"
"wrote: 4"
C:\opt>test.bat
"read: 4"
"wrote: 4"
Почему переменная foo
не отображается с приращением, как ожидалось?