我正在制作一个批处理文件,它将创建另一个.bat,但它无效。这是我的代码(我知道游戏有效,但我不能把它放在.txt中)
:new2
echo(
:game
cls
@echo off
echo Welcome to Tobey's Rock Paper Scissors game!
pause
:start
cls
echo Please select a method of destruction
echo [1] Rock
echo [2] Scissors
echo [3] Paper
set /p choice=
if %%choice%% EQU 1 goto rock
if %%choice%% EQU 2 goto scissors
if %%choice%% EQU 3 goto paper
goto goof
:rock
Set /A enemy=%random% %% 3
if %%enemy%% EQU 0 goto tie
if %%enemy%% EQU 1 goto win
if %%enemy%% EQU 2 goto loss
:tie
echo Your opponent threw rock, it's a tie!
pause
goto start
:win
echo Your opponent threw scissors, you win!
pause
goto start
:loss
echo Your opponent threw paper, you lose!
pause
goto start
:scissors
Set /A enemy=%random% %% 3
if %%enemy%% EQU 0 goto loss1
if %%enemy%% EQU 1 goto tie1
if %%enemy%% EQU 2 goto win1
:tie1
echo Your opponent threw rock, you lose!
pause
goto start
:win1
echo Your opponent threw scissors, it's a tie!
pause
goto start
:loss1
echo Your opponent threw paper, you win!
pause
goto start
:paper
Set /A enemy=%%random%% %% 3
if %%enemy%% EQU 0 goto win1
if %%enemy%% EQU 1 goto loss1
if %%enemy%% EQU 2 goto tie1
:tie1
echo Your opponent threw rock, you win!
pause
goto start
:win1
echo Your opponent threw scissors, you lose!
pause
goto start
:loss1
echo Your opponent threw paper, it's a tie!
pause
goto start
:goof
cls
echo You dun goofed.
pause
goto game
)>>%fileinfo%.bat
TYPE %fileinfo%.bat
它没有创建新文件,有什么建议吗?注意:这不是完整的代码,我有代码转到:new2和定义%fileinfo%的代码。
答案 0 :(得分:0)
不完全清楚这一点,但我相信您想将整个代码复制到文本文件中吗? 所以在结尾你有
goto game
)>>%fileinfo%.bat
TYPE %fileinfo%.bat
所以你在这里做的是复制
ECHO(
::CODE into the file
)>>
代码到您的文件现在我真的会这样做
goto game
)>>%fileinfo%.txt
TYPE %fileinfo%.txt > %fileinfo%.bat ::Or the other way around...
我很确定这会有效但我不完全确定您使用TYPE命令的情况,因为我确信这应该可行
答案 1 :(得分:0)
对于要包含在另一个批处理文件中的每行代码,将echo
放在其前面并在其后面加>>example.bat
。
所以如果你想要一个包含以下内容的新文件:
@echo off
echo hello world
pause
然后只需在第一个批处理文件中包含此代码:
echo @echo off>>example.bat
echo echo hello world>>example.bat
echo pause>>example.bat
只需将“example.bat”替换为您自己的文件名即可。它可以是批处理文件。
此外,如果你有点懒,并且不想用数百行代码来做,我可以建议查看Notepad ++宏功能,它会将它(几乎)完全自动添加到批处理文件中
答案 2 :(得分:0)
如果可以将“新”代码设置到批处理文件的最后,这样就可以了。
你甚至不必逃避特殊字符。
但是你必须知道你的代码在哪一行开始(这里是第10行)。如果您在该行之前添加或删除代码,则必须在此处更正数字:more +<linenumber>
@echo off
echo generating new file
more +10 %~nx0 >newfile.bat
type newfile.bat
call newfile.bat
echo It works!
exit /b
next line is the first one to copy
@echo off
rem new bat file
echo hello, it's me, %username%!
echo I'm a new file
echo generated by another file.