C#で書かれたプログラムをバッチ処理を行いたいのですが,方法があまり良く分かりません.
まずC#で書かれたプログラムを起動すると,
処理したいファイル名を入力するテキストボックススと,
パラメータを入力するテキストボックスが表示されて,
ボタンを押すと処理が始まります.
処理したいファイルが数百あるので,バッチ処理でできないものかと考えているのですが,
どのようにC#のプログラムに引数を渡して処理させればいいのか分かりません.
理想としては,コマンドプロンプトから,各種値が入ったテキストファイルなんかを読み込ませて処理できればよいのですが...
十分伝えきれているのか不安ですが,宜しくお願い致します.
No.3ベストアンサー
- 回答日時:
今後も数百単位の処理を行うのなら、一番楽なのはそのC#で作られたというプログラムに手を加える事です。
1回限りでも同じ事ですが。
難しいだのできるかもだの言われてますが、できるかな?じゃなくやるんです。
UWSCで実行する手順を以下に書きます。
前提条件
C#で作られたテキストボックスが左上から数えて
1番目がファイル名、2番目がパラメータであること
ボタンが1つしかない又は左上から数えて1番目のボタンが処理を実行するボタンであること
1ファイルにつき処理そのものが3秒以内で終了すること
処理したいファイル名が必ず存在すること(エラー処理してません)
1.「// ここから」 以下の行を全てコピーし、メモ帳に貼り付け保存、拡張子をtxtからuwsに変更する
2.「処理したいファイル名,パラメータ」を列記したファイルをargs.txtとして作成し、uwsファイルと同じフォルダに置く
3.C#で作られたプログラムを起動する
4.UWSCを起動して先ほど作成したuwsファイルを読み込み、Alt+F1でマクロ開始
5.C#で作られたプログラムのタイトルバーあたりをクリックしてアクティブにし、Ctrlキーを押す
列記したファイル名で上手くいかない場合はフルパスで列記してみたらいいかもしれません。
// ここから
OPTION LOGFILE = 3
// ログファイル名好きに変えてね
// エラー出た場合はこのログファイルに詳細が書かれます
OPTION LOGPATH = "C:\logudenasi.log"
PUBLIC G_ARGSFILE = "args.txt"
// 処理時間は調整してね(秒)
PUBLIC 処理時間 = 3
PUBLIC G_WID
main()
PROCEDURE main()
DIM bFlag = TRUE
// 任意のウィンドウをアクティブにした状態でCTRLが押されるまで待機
WHILE bFlag
IFB GETKEYSTATE(VK_CTRL) = TRUE THEN
G_WID = GETID(GET_ACTIVE_WIN)
bFlag = FALSE
ENDIF
SLEEP(0.02)
WEND
// パラメータの読み込みとボタン押すやつ
FncReadFileAndExcute(G_ARGSFILE)
FEND
PROCEDURE FncReadFileAndExcute(args)
DIM strFiles[1]// ファイル名格納配列
DIM strParams[1]// パラメータ格納配列
DIM fID// 読み込みファイルID
DIM iRows// 読み込みファイル行数
TRY
fID = FOPEN(args)
iRows = FGET(fID,F_LINECOUNT)
RESIZE(strFiles, iRows)
RESIZE(strParams, iRows)
FOR i = 0 TO iRows
strFiles[i] = FGET(fID,i+1,1)
strParams[i] = FGET(fID,i+1,2)
NEXT
FINALLY
FCLOSE(fID)
ENDTRY
// ボタンキャプションが不明だったので取得
GETITEM(G_WID,ITM_BTN)
FOR i = 0 TO iRows
// 1つ目のテキストボックスにファイル名を
SENDSTR(G_WID,strFiles[i],1,TRUE)
// 2つ目のテキストボックスにパラメータを
SENDSTR(G_WID,strParams[i],2,TRUE)
//ボタンを押す
CLKITEM(G_WID,ALL_ITEM_LIST[0])
SLEEP(処理時間)
NEXT
FEND
No.2
- 回答日時:
うまくやれば、UWSCのような自動化ツールを使ったり、WindowsMessageを使って貼り付けたりで、対応できるかもしれません
No.1
- 回答日時:
バッチ処理をするためにはこのプログラムが初めから引数を引っ張れるようなプログラムでなければできません。
開いて、情報を書き込んで、ボタンを押すという作業のリクエストが有る以上は無理でしょう。そのプログラムが貴方が書いて物であるのならその部分を自動読み取りにすることでバッチ処理ができるようになります。でも他の人のプログラムなら難しいですね。この回答への補足
やはりそうですか,
一応ソースコード(VisualStudioで作ったらしい)はあるのですが,
プログラミング自体あまり得意ではなく,またC#なんて触ったこともないので困っていることろです.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- システム CPUの問題について 2 2022/07/09 12:04
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
プログラム上のCPU稼働率低減に...
-
SQLの速度をあげるには・・・
-
Excel VBAにて、2GB超の点群デ...
-
If Not c Is Nothing Then ~延...
-
Excel VBA データ削除の高速化
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
Timerを使用しての強制待機
-
実行時のCPU使用率を増やしたい
-
逆ポーランド記法における単項...
-
絶対パスの取得について
-
ナップザック問題?をエクセル...
-
C言語 再帰処理のメリットとデ...
-
WebBrowserの読み込み待ちの処...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
Windows10でDOSゲーム
-
explorer.exeが異様にメモリを食う
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
Excel VBAにて、2GB超の点群デ...
-
VBでの簡易電卓の作成(減算方...
-
C言語:関数を使うメリットとデ...
-
テキストファイルの空行をスキ...
-
プログラム上のCPU稼働率低減に...
-
Excel(VBA)でSetTimer関数を使...
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
プログラム 擬似コードとはどん...
-
基本情報技術者試験詳しい方へ...
-
ノットイコールを教えて下さい
-
符号付きにすべきか、符号なし...
-
C言語 時刻差分の算出方法
-
実行時のCPU使用率を増やしたい
おすすめ情報