File 变量在生成.txt'时消失;s
我正在编写一个批处理代码,当出现提示时,它将编写一个File 变量在生成.txt'时消失;s,file,batch-file,File,Batch File,我正在编写一个批处理代码,当出现提示时,它将编写一个.bat文件。这是我用来创建.bat的代码示例: echo set /a num=0 >>%fileinfo%.bat echo :repeat1 >>%fileinfo%.bat echo set /a num=%num% +1 >>%fileinfo%.bat echo echo %num% >>%fileinfo%.bat echo if %num%==100 goto end >&g
.bat
文件。这是我用来创建.bat
的代码示例:
echo set /a num=0 >>%fileinfo%.bat
echo :repeat1 >>%fileinfo%.bat
echo set /a num=%num% +1 >>%fileinfo%.bat
echo echo %num% >>%fileinfo%.bat
echo if %num%==100 goto end >>%fileinfo%.bat
echo goto repeat1 >>%fileinfo%.bat
这是原始代码:
set /a num=0
:repeat1
set /a num=%num% +1
echo %num%
if %num%==100 goto end
goto repeat1
当我运行代码并创建新的.bat时会发生什么:
set /a num=0
:repeat1
set /a num= +1
echo
if ==100 goto end
goto repeat1
它去掉了%num%
,有人能想出一种方法来解决这个问题,或者另一种方法来创建文件吗?谢谢
echo set /a num=0 >>%fileinfo%.bat
echo :repeat1 >>%fileinfo%.bat
echo set /a num=%%num%% +1 >>%fileinfo%.bat
echo echo %%num%% >>%fileinfo%.bat
echo if %%num%%==100 goto end >>%fileinfo%.bat
echo goto repeat1 >>%fileinfo%.bat
您的基本问题是在执行行之前,
%var%
被var
的内容替换。对于一些对批处理有特殊意义的字符,如重定向器>|在本链接的一些示例中,作者将变量包装在“”中,这会改变什么吗?@pippin是的,但变化很微妙<代码>设置“var=value”确保编辑器在行上留下的任何尾随空格都不包括在指定的值中。另外,set“var=value”
将在字符串value
后分配三个尾随空格,如果编辑器在行中有效地删除尾随空格,则不会消失。非常感谢,我现在就尝试一下。我做了:end,因为在这个序列之后,它会跳到一个名为:end的循环
@ECHO OFF
SETLOCAL
SET "fileinfo=q20296357x"
(
echo set /a num=0
echo :repeat1
echo set /a num=%%num%% +1
echo echo %%num%%
echo if %%num%%==100 goto end
echo goto repeat1
)>>%fileinfo%.bat
TYPE %fileinfo%.bat
GOTO :EOF