这是批量制作
@echo off
title TXTanimation
set dir101=C:\USers\Jake\Desktop\file.bat
goto menu
echo Lets make a text animation
pause
set /p dir101=where will the .bat be saved:
echo @ECHO OFF > %dir101%
:menu
echo 0=Edit important information
echo 1=Display .txt
echo 2=Play sound
echo 3=Close sound player
echo 4=Add nessicary wait between .txt
echo 5=Label point
echo 6=Edit variable
echo 7=Goto point
echo 8=Create IF sentence
echo 9=End it
Set /p choose=which one:
If '%choose%'=='0' (
SEt /p title=What is the title
:LOL101
set /p color=what color do you want (type test to experiment with the colors)
If '%color%'=='test' goto tester
goto model
:tester
SEt /p test=Please give hexadecimal number type exit to leave:
if '%test%'=='exit' goto LOL101
color %test%
goto tester
:model
echo title %title% >> %dir101%
echo color %color% >> %dir101%
)
If '%choose%'=='1' (
set /p dir=what is the dir of your .txt:
)
If '%choose%'=='1' (
echo cls >> %dir101%
echo type %dir% >> %dir101%
)
If '%choose%'=='4' (
SEt /p thyme=How much milliseconds 250 is usual:
echo ping 192.168.1.1 -n 1 -w %thyme% >> %dir101%
)
goto menu
If '%choose%'=='9' (
echo Thanks for making
pause
)
它将用于在.bat文件中创建.txt动画。我可以完成它,但我首先需要解决问题。
问题在于它确实如此
echo title %title% >> %dir101%
echo color %color% >> %dir101%
即使有括号
答案 0 :(得分:1)
您不清楚自己遇到了什么问题。但是,我发现您的代码存在常见问题。
您正在设置环境变量,然后尝试使用立即扩展来访问该值,所有这些都在括号内的相同代码块中。这不起作用,因为在解析块时会发生扩展,并且在执行任何操作之前一次性解析整个块。因此,您最终会获得在块中设置值之前存在的值。
解决方案是使用脚本顶部的SETLOCAL EnableDelayedExpansion
启用延迟扩展。然后使用延迟扩展(!var!
)而不是正常扩展(%var%
)来在执行时而不是在解析时获取变量的值。
有关更多信息,请在命令提示符下键入HELP SET
并开始阅读以开头的段落“最后,添加了对延迟环境变量扩展的支持...”