You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理文件中执行class.cs并插入到现有命令之间

问题:能否在批处理两条命令间执行C#类文件?

我正在运行如下批处理文件,想在两条命令之间加入执行class.cs(C#类文件)的操作,请问可行吗?

原批处理代码:

echo off
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)

set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%

set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%

(py tool.py -p COM8 write_flash 0x20200 diags_0.0.15.bin 
py tool.py -p COM8 write_flash 0x1c0088 diags_0.0.15.bin) > log_%SUBFILENAME%.txt

我尝试的修改方案:

echo off
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)

set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%

set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%

(py tool.py -p COM8 write_flash 0x20200 diags_0.0.15.bin
echo class.cs 
py tool.py -p COM8 write_flash 0x1c0088 diags_0.0.15.bin) > log_%SUBFILENAME%.txt

回答

你当前的修改只是输出class.cs字符串,并没有真正执行这个C#类文件。C#源文件无法直接通过批处理执行,必须先编译成可执行程序,或者使用.NET CLI直接运行源文件(适用于.NET Core/.NET 5+环境)。

以下是两种可行的修改方式:

方式1:使用.NET CLI直接运行C#源文件(推荐,无需提前编译)

如果你的环境已经安装了.NET Core/.NET 5+ SDK,可以直接用dotnet run命令执行class.cs:

echo off
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)

set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%

set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%

(py tool.py -p COM8 write_flash 0x20200 diags_0.0.15.bin
dotnet class.cs  # 单文件C#程序可直接用此命令
py tool.py -p COM8 write_flash 0x1c0088 diags_0.0.15.bin) > log_%SUBFILENAME%.txt

注意:如果class.cs依赖其他类库或项目文件,需使用dotnet run --project指定项目目录。

方式2:提前编译C#文件为可执行程序

先通过csc(C#编译器)将class.cs编译成class.exe,然后在批处理中直接调用:

echo off
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)

set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%

set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%

(py tool.py -p COM8 write_flash 0x20200 diags_0.0.15.bin
class.exe  # 直接调用编译后的可执行文件
py tool.py -p COM8 write_flash 0x1c0088 diags_0.0.15.bin) > log_%SUBFILENAME%.txt

编译命令示例:csc class.cs,需确保csc.exe在系统PATH中,或使用完整路径(如C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe)。

另外,当前的括号包裹方式已经会把三条命令的输出都重定向到日志文件,无需额外修改。

内容的提问来源于stack exchange,提问作者PB stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:01:02