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有很好的措施。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top