.bat
埋め込みC#コードを使用してファイルをコンパイルして実行中にするにはどうすればいいでしょうか?
バッチ命令とC#コードの両方を1つのファイルに含めることはできますか?.batファイルに埋め込まれたC#ソースコード
1
A
答えて
2
はい、可能です。
Example.bat
/* 2> nul
@echo off && cls && echo Loading... && echo.
set WinDirNet=%WinDir%\Microsoft.NET\Framework
if exist "%WinDirNet%\v2.0.50727\csc.exe" set csc="%WinDirNet%\v2.0.50727\csc.exe"
if exist "%WinDirNet%\v3.5\csc.exe" set csc="%WinDirNet%\v3.5\csc.exe"
if exist "%WinDirNet%\v4.0.30319\csc.exe" set csc="%WinDirNet%\v4.0.30319\csc.exe"
if "%csc%" == "" (echo .NET Framework not found! && echo. && pause && exit)
%csc% /nologo /out:"%~dpnx0.exe" "%~dpnx0"
if not "%ERRORLEVEL%" == "0" (echo. && pause && exit)
cls
"%~dpnx0.exe" %*
del "%~dpnx0.exe"
exit
*/
using System;
class Program
{
static void Main()
{
System.Console.WriteLine("Hello, World!\r\nI am at " + System.Environment.Version);
}
}
説明:
ここ例で最初にバッチコード及び二次のC#コード:このバッチファイルは2つの部分から成ります。実行すると、コマンドシェルはエラー行としてc#-comments /*
と*/
を無視し、バッチコードのみを実行します。バッチブロックの終了時に終了コマンドを実行すると、実行は決してC#コードに到達しません。
ファイルのバッチ部分がcsc.exe
(.NETコンパイラ)を検索します。見つけた後、バッチファイルはcsc.exe
に入り、c#コードをコンパイルします。コメント(/ *と* /)により、バッチ部分は無視され、c#部分のみがコンパイルされます。コンパイル後、.exeファイルが実行され、実行後に削除されます。
:2> nul
2> nul
標準エラー(ディスクリプタ2)をnullにリダイレクトして、 'not-found'メッセージを抑制します。
1
バッチコードをコメントアウトすることはできますが、コメントがバッチでエラーとして処理されることは避けられません。
エラー自体は抑止できますが、少なくとも最初の行が表示されます。
/* 2>NUL
@echo off
...
start the C# code
*/
...
C#-Code
C#はファイルの最初の文字として:@
の文字のいずれかを受け入れないようだと、私は完璧なソリューションのための可能な方法を見ることはできません。
関連する問題
- 1. Googleドライブが埋め込まれたC#
- 2. JFrameに埋め込まれたブラウザに埋め込まれたアプレット
- 3. エクスポートされたCファイルに埋め込まれたSVNリビジョン番号
- 4. Windowsフォームの値から埋め込まれたPDFを埋め込む - C#
- 5. C#で.exeに埋め込まれたローカライズされたリソース(.dll)
- 6. pcap dllファイルをC#プロジェクトに埋め込みました。
- 7. ウェブサイトに埋め込まれたExcelファイルを読み込む
- 8. 埋め込みプロジェクトをソースコードで探す
- 9. ソースコードからの埋め込みウィキ
- 10. 埋め込まれたドキュメントと埋め込まれていないドキュメントを同時に埋め込む
- 11. html5ビデオプレイヤースクリプトで埋め込まれたfacebookを埋め込む
- 12. 埋め込まれたscalaと埋め込みGroovy
- 13. C#PDFファイルでtreeviewを埋め込む
- 14. Emmaはhtmlレポートにソースコードを埋め込みません
- 15. svgに埋め込まれたビデオタグ
- 16. RubyOnRailsに埋め込まれたPython
- 17. page_loadに埋め込まれたアクセスデータセット
- 18. URLに埋め込まれたStruts2アクション
- 19. コンテナビューに埋め込まれたUITableViewが
- 20. Javaに埋め込まれたGroovy
- 21. Elm:Svgバグに埋め込まれたHtml
- 22. DIVに埋め込まれたテーブル
- 23. Node.jsに埋め込まれたelasticsearch
- 24. UIScrollViewに埋め込まれたUIWebview
- 25. UINavigationBar/Itemに埋め込まれたUISegmentedControl
- 26. NSSscrollViewに埋め込まれたカスタムNSView
- 27. プログラムに埋め込まれたコード
- 28. クラウドに埋め込まれたRavenDB
- 29. メニューバーに埋め込まれたロゴ
- 30. NavigationControllerに埋め込まれたUITabBarController
バッチファイルを起動するたびに '/ * 'が内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されないことがあります:p – Nyerguds
@Nyerguds私は' cls'と思われますそれを世話してください:p – Stephan
@Nyergudsそれは私にうまく働いています。 – Exerion