В пакетном файле используйте следующую команду, чтобы запустить Блокнот Windows с выбранным вами текстовым файлом, в который пользователь может ввести текст, который затем обрабатывается пакетным файлом после выхода из Блокнота Windows и сохранения введенного текста в файл.
@echo off
rem Create a text file with 0 bytes.
type NUL >"%TEMP%\UserText.txt"
rem Start Windows Notepad with that empty text file and halt
rem execution of batch file until user finished typing the
rem text and exiting Notepad with saving the text file.
%SystemRoot%\notepad.exe "%TEMP%\UserText.txt"
rem Delete the text file if its file size is still 0.
for %%I in ("%TEMP%\UserText.txt") do if %%~zI == 0 del "%TEMP%\UserText.txt" & goto :EOF
rem Do something with the text file like printing the text.
type "%TEMP%\UserText.txt"
rem Finally delete the text file no longer needed.
del "%TEMP%\UserText.txt"
pause
Но если пакетный файл должен сам создать текстовый файл, то вообще не нужно использовать Блокнот Windows, как демонстрирует этот код:
@echo off
(
echo This is a demo on how text can be written into a text file.
echo/
echo The command ECHO is used to output text to console which is redirected
echo with redirection operator ^> into a file which is created always new
echo with overwriting the text file if already existing by chance.
echo/
echo See the Microsoft article "Using command redirection operators" with URL
echo https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490982(v=technet.10^)
echo for details.
) >"%TEMP%\UserText.txt"
rem Do something with the text file like printing the text.
type "%TEMP%\UserText.txt"
rem Finally delete the text file no longer needed.
del "%TEMP%\UserText.txt"
pause
Примечание: Некоторые символы необходимо экранировать с помощью символа вставки ^
, чтобы интерпретировать их как буквальные символы при обработке командных строк ECHO командным процессором Windows.Операторы перенаправления <>|&
должны быть экранированы с помощью ^
, а также )
, если командная строка находится внутри командного блока, начинающегося с (
и заканчивающегося соответствием )
, то есть закрывающей круглой скобкой, не экранированной с ^
и не записывается внутри строки аргумента в двойных кавычках.
Знак процента %
должен быть экранирован еще одним знаком процента в пакетном файле, чтобы интерпретировать его как буквенный символ, а не как начало аргумента пакетного файлассылка, как начало ссылки на переменную цикла или начало / конец ссылки на переменную среды.И восклицательный знак !
должен экранироваться двумя знаками, то есть ^^
, если включено замедленное расширение переменной среды, что по умолчанию не имеет места.
Для понимания используемых команд и того, как они работают,откройте окно командной строки, выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.
call /?
del /?
echo /?
for /?
goto /?
if /?
pause /?
rem /?
set /?
type /?
См. Также Как интерпретатор сценариев команд Windows (CMD.EXE) анализирует сценарии?