批处理文件相当于此代码
-
21-08-2019 - |
题
HI我想要实现在批处理文件中该C代码
int i;
scanf("%d", &i);
for(int j = 0;j<i;j++)
{
scanf("%d",&j);
printf("%d",j);
}
,使得打印输出来我在一个文件I将运行使用>在DOS重定向的C程序。我想要做同样的事情在我的批处理文件,我可以写的东西像
echo %variable% >> file
但它不为我工作
@echo off
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo %c% >> file.txt
)
什么是错的?
解决方案
,因为你需要延迟变量扩展为你尝试来指代变化的变量在if
块即不能正常工作。你可以尝试以下方法:
@echo off
setlocal enabledelayedexpansion
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo !c! >> file.txt
)
,因为这将仅当代码运行评价c
,而不是当该线路(在这种情况下完整if
语句)被解析。
这是你的C代码,批次A,直接转换可能会看起来更像以下,但:
@echo off
set /p i=
:loop
set /p j=
echo %j%
set /a j+=1
if %j% LSS %i% goto loop
如果你喜欢,你可以添加提示,尽管C程序没有他们要么:)。现在,你可以管的批处理程序的整体输出或只是添加>> file
有很好的措施。
不隶属于 StackOverflow