Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 变量在生成.txt'时消失;s_File_Batch File - Fatal编程技术网

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