【发布时间】:2023-03-13 11:55:01
【问题描述】:
我目前正在按照句子生成器的方式制作一些东西,它使用包含单词列表的文本文件,例如,名人.txt 有名人列表,这个脚本都将文本文件洗牌到 newcelebrity.txt并从该列表中取出第一个,因此每次都不同,我遇到了一个问题,我希望它是一行,你可以在你输入的句子中调用一个变量,而不是像现在这样分解它,到目前为止,有没有办法让它“这个 $celebrity 真的很棒”,它的工作原理是这样的:https://gyazo.com/9ae8583ed5457709bd1c1dc9cc0cc106 并输出为这个https://gyazo.com/1a5a90f1fbf80faa73d71791a8c1c761,我根本不介意引号,它就是你的方式输入它。 有没有办法让它像我想要的那样工作,或者这是批处理文件的限制?
set /p message=Unity:
set /p input=The variable:
set /p after=Unity:
:gen
setlocal
cd ..
cd rcs
echo doing background work, please wait a few seconds :)
for /f "delims=" %%a in (%input%.txt) do call set "$$%%random%%=%%a"
(for /f "tokens=1,* delims==" %%a in ('set $$') do echo(%%b)>new%input%.txt
endlocal
cls
set "File=C:\Users\%USERNAME%\Desktop\gg\rcs\new%input%.txt"
set /a count=0
echo background work done :)
timeout /t 1 >nul
SETLOCAL enabledelayedexpansion
for /F "tokens=* delims=" %%a in ('Type "%File%"') do (
Set /a count+=1
Set "output[!count!]=%%a"
)
For /L %%i in (1,1,%Count%) Do (
Call :Action "!output[%%i]!"
pause
)
Exit
::*******************************************************
:Action
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo %message% %1 %after%
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo if you want to go back and change your inputs type back
echo if you want to continue generating, type gen
echo.
set /p instruction=
goto %instruction%
::*******************************************************
【问题讨论】:
标签: batch-file