如何修复嵌套在if语句中的Echo命令

时间:2019-01-31 06:49:27

标签: batch-file cmd

我正在尝试创建一个脚本,该脚本将创建另一个批处理脚本。但是,此代码将无法正常运行,一旦执行了if语句,则会立即退出。

set yes=yes
pause


IF /I %yes% == yes (
    ECHO REM Music>>mf.bat
    ECHO FOR /f %%i in (C:\CopyToRoot\MusicFileAndLocation.txt) do set MusicFile=%%i>>mf.bat    
)`

但是,如果if语句中的第二行被删除,代码将执行而不会出现问题。

我在做什么错?关于echo语句我缺少什么?

2 个答案:

答案 0 :(得分:1)

您需要花费一些精力来格式化代码块,但是,摆脱代码块并简单地调用标签要简单得多。另外,批处理文件将消耗%,因此您需要将它们加倍才能将字符串正确重定向到文件。

@echo off
set yes=yes
pause

IF /I "%yes%"=="yes" call :final
goto :eof
:final
echo REM Music>mf.bat
echo FOR /f %%%%i in (C:\CopyToRoot\MusicFileAndLocation.txt) do set MusicFile=%%%%i>>mf.bat

请注意,我在第一行rem上使用了一次重定向来覆盖文件,否则,它将在您每次运行代码时附加,如果这样做的话,只需进行两次重定向>>

答案 1 :(得分:1)

也许:

<ul class="tabs" data-responsive-accordion-tabs="tabs small-accordion medium-accordion large-tabs" id="example-tabs">

<li class="tabs-title is-active"><a href="#panel1" aria-selected="true">Tab 1</a></li>
<li class="tabs-title"><a href="#panel2">Tab 2</a></li>
<li class="tabs-title"><a href="#panel3">Tab 3</a></li>
<li class="tabs-title"><a href="#panel4">Tab 4</a></li>
<li class="tabs-title"><a href="#panel5">Tab 5</a></li>
<li class="tabs-title"><a href="#panel6">Tab 6</a></li>

</ul>

<div class="tabs-content" data-tabs-content="example-tabs">
<div class="tabs-panel is-active" id="panel1">
<p>Tab 1 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
<div class="tabs-panel" id="panel2">
<p>Tab 2 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
<div class="tabs-panel" id="panel3">
<p>Tab 3 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
<div class="tabs-panel" id="panel4">
<p>Tab 4 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
<div class="tabs-panel" id="panel5">
<p>Tab 5 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
<div class="tabs-panel" id="panel6">
<p>Tab 6 - Check me out! I'm a super cool Tab panel with text content!</p>
</div>
</div>

将百分比加倍,并转义任何内部的右括号。