Top.Mail.Ru
Ответы

Работа с батниками

Всем привет!
Возникла такая необходимость, чтобы батник при определенных действиях батник редактировал текстовый файл. Ну, например, мне нужен калькулятор, который все введенные и результат вставляет в текстовый файл. И не пишите, зачем мне такой калькулятор нужен, это я первый рухнувший с дуба пример привел!
Т. е. то, что вводит пользователь, копируется файл. Если файла нет в указанном месте - он его автоматически создает. И главное - если (возьмем тот же калькулятор) пользователь вводит 2 примера, то оба записываются, и второй с новой строки естессно. То есть примерно так:

Командная строка:
Enter 1 number:
>25
Enter 2 number:
>31
Result: 56

[Следующий сеанс]
Enter 1 number:
>74
Enter 2 number:
>29
Result: 103

Текстовый файл:
25+31=56
74+29=103

Заранее спасибо.
P.S. Не знаю, важно это или нет, но неплохо было бы, чтобы файлик с записями хранился не в одной папке с прогой, т. е. при написании батника можно было указать, где этот файлик должен быть.
P.P.S. Отдельный респект тем, кто еще подскажет, можно ли перед записью каждой вставлять дату и время. то есть в нашем случае (текстовый файл):
[22.01.2018 16:03:44,28] 25+31=56
[22.01.2018 17:40:56,11] 74+29=103

Дополнен

Точно знаю, что в батниках как минимум можно редактировать текстовые файлы и создавать их, сам видел. Создавались *.txt

Дополнен

И проверять, есть ли они на месте, если нет - создавать

По дате
По Рейтингу
Аватар пользователя
Новичок
7лет

Легко. С одной операцией так совсем примитив
set /p folder=Enter dir/file_name:
set /p a1=Enter 1st number:
set /p a1=Enter 2nd number:
set /a op=%a1% + %a2%
echo [%date% %time%] %a1% + %a2% = %op% >> %folder%

Аватар пользователя
Мудрец

@chcp 65001
@echo off
title Калькулятор
mode con: cols=54 lines=9
color 0a
EnableExtensions
set "ps=" & for %%X in (powerShell.exe) do set "ps=%%~$PATH:X"
if not defined ps set "ps=%systemRoot%\system32\windowsPowerShell\v1.0\powerShell.exe"
goto :first

:first
cls
echo.
echo. Введите выражение и нажмите "Enter"
echo. / * )( - +Значки Арифметические
echo. "%%" не работает, узнать 15%% от числа пишите *0.15
echo.
echo. %var%=%result%
echo.
set /p var=":"
if "%var%"=="" ( goto :first )
For /F "UseBackQ delims=" %%a in (`"cmd /c "
"%ps%" -ExecutionPolicy ByPass -NoProfile -command "%var%"
""`) do (
set result=%%a
)
goto :first

%%
это тело калькулятора который считает значения после точки, чтобы сохранять в файл добавьте
"set result=%%a & (echo. %%a)>>file.txt" - без кавычек,
или
"set result=%%a & (echo. %result%)>>file.txt",
если надо как у вас с датой, временем и выражением
"(echo. [%date% %time%] %var%=%result%)>>file.txt" - тоже без кавычек
%username%/documents/file.txt - можно и адрес выставлять
ваше ентер намбер меня улыбнуло, пишите всё выражение в одну переменную
((555/3)*567)/5+1