Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file 如何在批处理文件中运行C代码?_Batch File_C# 3.0 - Fatal编程技术网

Batch file 如何在批处理文件中运行C代码?

Batch file 如何在批处理文件中运行C代码?,batch-file,c#-3.0,Batch File,C# 3.0,我有一个C代码来显示计算机的审计报告。 但我需要将它集成到批处理文件中。 请帮助编写C程序并将其编译为exe程序。在批处理文件中,只需调用它。如果需要程序中的某些值,请使用return语句返回整数 注意:所有代码都是未经测试的伪代码,仅供示例使用。语法错误比比皆是 如果需要向C程序传递参数,只需在调用程序时传递即可 有关错误级别编码,请参见此处: 有关变量编码,请参见此处: 有关命令行参数,请参见此处: 将此另存为.bat并测试它 //>nul 2>nul||@goto :batch

我有一个C代码来显示计算机的审计报告。 但我需要将它集成到批处理文件中。
请帮助编写C程序并将其编译为exe程序。在批处理文件中,只需调用它。如果需要程序中的某些值,请使用return语句返回整数

注意:所有代码都是未经测试的伪代码,仅供示例使用。语法错误比比皆是

如果需要向C程序传递参数,只需在调用程序时传递即可

有关错误级别编码,请参见此处: 有关变量编码,请参见此处: 有关命令行参数,请参见此处:

将此另存为.bat并测试它

//>nul 2>nul||@goto :batch
/****** Batch code *******

:batch
@echo off
setlocal

:: find csc.exe
set "frm=%SystemRoot%\Microsoft.NET\Framework\"
for /f "tokens=* delims=" %%v in ('dir /b /a:d  /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
   set netver=%%v
   goto :break_loop
)
:break_loop
set csc=%frm%%netver%\csc.exe
:: csc.exe found

call %csc% /nologo /out:"%~n0.exe" "%~dpsfnx0" 
%~n0.exe %*
:::::
 echo this was echoed from the batch
::::
endlocal
pause
exit /b 0

******* end of batch code *****/
// c# code
public class Hello
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, C# World!");
   }
}

您选择通过PowerShell使用批处理文件的原因是什么?
//>nul 2>nul||@goto :batch
/****** Batch code *******

:batch
@echo off
setlocal

:: find csc.exe
set "frm=%SystemRoot%\Microsoft.NET\Framework\"
for /f "tokens=* delims=" %%v in ('dir /b /a:d  /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
   set netver=%%v
   goto :break_loop
)
:break_loop
set csc=%frm%%netver%\csc.exe
:: csc.exe found

call %csc% /nologo /out:"%~n0.exe" "%~dpsfnx0" 
%~n0.exe %*
:::::
 echo this was echoed from the batch
::::
endlocal
pause
exit /b 0

******* end of batch code *****/
// c# code
public class Hello
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, C# World!");
   }
}