Top.Mail.Ru
Ответы

Bat скрипт и txt документ

Нужно из bat файла вывести значение двух переменных в текстовый файл. они вместе лежат в одной папке. интернет молчит

Дополнен

весь скрипт:
@echo off
title CS for Batch_DON OS
echo SET BACKGROUND
set comment="echo 0 - black I 8 - gray
echo 1 - blue I 9 - light blue
echo 2 - green I A - light green
echo 3 - cyan (light blue) I B - light cyan (light blue)
echo 4 - red I C - light red
echo 5 - lilac (violet) I D - light lilac (light violet)
echo 6 - yellow I E - light yellow
echo 7 - white I F - light white (yes, light white)"
cls
echo %comment%
set /p bg="enter the color of your background "
if "%bg%"=="0" (0)
if "%bg%"=="1" (1)
if "%bg%"=="2" (2)
if "%bg%"=="3" (3)
if "%bg%"=="4" (4)
if "%bg%"=="5" (5)
if "%bg%"=="6" (6)
if "%bg%"=="7" (7)
if "%bg%"=="8" (8)
if "%bg%"=="9" (9)
if "%bg%"=="A" (A)
if "%bg%"=="B" (B)
if "%bg%"=="C" (C)
if "%bg%"=="D" (D)
if "%bg%"=="E" (E)
if "%bg%"=="F" (F)
cls
echo SET TEXT
echo %comment%
set /p txt="enter the color of your text "
if "%txt%"=="0" (0)
if "%txt%"=="1" (1)
if "%txt%"=="2" (2)
if "%txt%"=="3" (3)
if "%txt%"=="4" (4)
if "%txt%"=="5" (5)
if "%txt%"=="6" (6)
if "%txt%"=="7" (7)
if "%txt%"=="8" (8)
if "%txt%"=="9" (9)
if "%txt%"=="A" (A)
if "%txt%"=="B" (B)
if "%txt%"=="C" (C)
if "%txt%"=="D" (D)
if "%txt%"=="E" (E)
if "%txt%"=="F" (F)
%bg%%txt% >> setup.txt
cls
color %bg%%txt%
echo your result: %bg%%txt%
echo %comment%
echo:wait 5 second, and exit... & >nul timeout /t 5 /nobreak

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
5лет

ИМХО всё это делается проще. В Windows 7 и выше вернули choice.
_https://ab57.ru/cmdlist/choice.html
Причем choice не даст ввести "левые" значения

Соотв. всё это можно заменить примерно таким

@echo off
set c=0123456789ABCDEF
set fname=setup.txt

call :makeChoice background bg
call :makeChoice foreground fg

echo %bg%%fg%>%fname%
exit

:makeChoice
choice /c %c% /m %1
set /a answer=%ERRORLEVEL%-1
call set answer=%%c:~%answer%,1%%
set %2=%answer%
exit /b

Если choice по каким-то причинам не устраивает - пишите в коммент - можно сделать проверку на основе set /a и что он может разбирать 16ричные значения. Соотв. можно избавиться от кучи if

Ещё момент >> будет _дозаписывать_ в файл. Т. е. при следующем вызове в конец файла добавятся ещё значения и потом ещё.
Вам-же судя по всему нужна перезапись. Используйте echo %переменная%>файл (как у меня)

Пруф:

Аватар пользователя
Оракул
5лет

Script.bat >> log.txt

Аватар пользователя
Гуру
5лет

echo перенаправить вывод в файл >> имя. файла

Аватар пользователя
Гуру
5лет

ассамблером можно?