バッチファイル(DOS)上でプログラムの戻り値を取得

今日のお題「バッチファイル(Windows MSDOS)上でプログラムの戻り値を取得するにはどうすればいいのか」

例えばバッチファイル内で「call Hoge.exe」としたときに、どうやって戻り値を得るか。です。

答え

  • %ERRORLEVEL%
  • プログラムのエントリポイント関数の戻り値をvoid以外に変更
  • プログラムのエントリポイントでreturn

会社で同僚が俺のプログラムをbatで実行しようとして、

「戻り値で処理分けたいんだけど、できない・・・」

と言っていたので調べてみました。

結論は上記のとおり。

ERRORLEVELに戻り値が入る。

VC#.netでコンソールアプリとか作ると

デフォルトはpublic static void Mainなので、そもそも戻り値がない。

調べたら案の定、ここを変える必要があるみたいで

public static int Mainにしたら上手く行きました。

バッチファイルを作成して何かする・・・ということは結構多いので、これはなんとか記憶しておきたいです。

同窓会のようなOFF会

今日は仕事上がってからOFF会へ行きました。

面子はROのときに、知り合いだった方々。

前回、紗乃という、当時よく遊んでもらった人と会って以来のOFFでした。

複数人集まったものでは久々です。

以前は毎月OFF会してたのに!

今日の面子とはあまりにも久しぶりすぎて、どうなることかと思いましたけど

会ってみたらなかなかの盛り上がりでした。

楽しかったです・・・!

OFF会っていいなー、仲間っていいなーとしみじみでした。

憧れの人はやっぱりネカマで・・・でも凄く2次元ヲタで近い空気を感じたり。

5年前に「彼女できたんだよ!」と言ってたお兄さんはもう30になり、その人と結婚してたり。

俺の家の近くの高専に通ってた方は立派な技術者になってたり(残念ながら機械系で路線が違うけど・・・!)

今日の主役の人は仕事が軌道に乗って不自由ない生活してるようで、

良かったです。

またOFFしたいなーと思いました。

社会人になり、配属されて名刺もできたことだし、

今度紗乃さんと飲みに行くときは他にも色々誘ってみようかなーと思いました。

俺の事嫌いになって、どっか行っちゃった人もいますけど

もしかしたら久々に会ったら楽しいんじゃないかなーと。

やるかどうかは分かりませんが、考えるだけでも楽しいですね。

OFF会は良い物だと思います。

家が狭くなった

祖母が家に来て狭くなりました。

今までは3部屋に一人ずつでちょうど良かったのに。

祖母に押し出されて父親がリビングにずっと居座るように。

邪魔すぎる・・・。

そして今度は祖母は半永久的に居座るらしい。

せめて俺が家出てからにしてほしかった・・・。

一時的にならまあ、いいけど半永久的とかちょっと居心地悪すぎる。

そして家に来た理由が納得いかねえ。

「三男(俺から見て叔父) 、つまり息子と喧嘩したから」とか・・・。

喧嘩の理由も納得いかないし、喧嘩したから家に来るのも納得いかない。

今回の流れに至った経緯は以下の通り。

  1. 祖母、息子(長男)二人暮らし貯金1000万越え、年金等収入 10万/月 …(10年前)
  2. 息子(長男)死亡 …(9年前)
  3. 三男「母さん寂しいだろう?うちの近くに越してきなよ! …(9年前)
  4. 三男「母さん、リストラされちまったよ!会社作るから金貸してくれよ!」 祖母、貯金0万 …(8年前)
  5. 三男「母さん、一人暮らしじゃさびしいだろう?うちで一緒に暮らしなよ!あ、年金は家に入れてね!」 …(7年前)
  6. 三男、癌発症 …(半年前)
  7. 三男「母さん、俺リビングで寝るの嫌なんだけど1階の部屋空けてくれない?あ、母さんは2階行ってくれな」
    祖母「足痛いから無理。今まで沢山金かけてやったのにその態度は何なの?」
    三男「金返すから出てけ!」

祖母は90歳以上なので、階段がきついというのは分かる。

だったら前の一人暮らしに戻せよ・・・。

そして金返すから出てけとかガキかよ。

金が無いから借りてたのに・・・。

返すあては死亡保険らしい。

返すから出てけって!今返すんじゃないのかよ!

叔父が母親に世話になりまくってるのに大口叩く態度も気に入らないけど、

この流れで家に流れ込んでくるのも納得いかない。

今までうちはほとんど放置されてたのに、今になって住まわせてくれって、

えっ・・・という感じ。

さらに言うと、

自己中かもしれんが老い先短い老人が若者に迷惑をかけるべきじゃないと思う。

ここは普通に考えて一人暮らしか老人ホームでしょう・・・。

大体、うちが金無いの知ってるくせに、うちに来ることが決まったとき

祖母「私の入る部屋の壁紙張り替えておいて」

とか・・・いや、無理ですから!なんで世話になるのに我儘言ってるの。

このせいで父親が二日無駄にして壁紙を白く塗ることになりました・・・。

gdgd言ってもしょうがないので、なるべく気にしないで生活しようと思います。

教訓:外注のコードは信じるな 特に臭い奴のコードは

今日は愚痴です。
(以下でやたら「外注」という言葉が出てきますが「派遣」とか「協力会社社員」の方が近いかもしれません。)

—————————————————

今やってるプロジェクトは1ヶ月の小規模の改修で、レベルとしては低い方。

そのため、プロジェクト開始当初からメンバー全員が楽勝だと思っていました。

上司はそれでもスケジュールを長めにとってくれて、開発側としては物凄く恵まれた仕事になる・・・はずでした。

そう、たった一人、あいつさえ居なければ・・・。

プロジェクトが始まり、設計は俺+同僚(先輩)、開発は外注を入れて、自分+外注ですることになりました。

正直自分一人でも少し残業すれば十分行けるんじゃないか・・・という感じ。

それでも上司の計らいで余裕を持ってやろう・・・と、外注を入れて作業開始しました。

―外注がやってきて初日、早速怪しい臭いを感じる。

外注「ソースコードはどこにあるんですか?」

同僚「ソースはSVNで管理してあるんですよ。ですから」

外注「SVN・・・?」

同僚「SVN使ったことありません?他のCVSとか・・・バージョン管理システムは何か経験あります?」

外注「いえ・・・、バージョン管理・・・使ったことあるような・・・」

おいおい・・・お前30歳以上で明らかに経験者だろう・・・

それでバージョン管理システムでピンと来ないってどうなんだよ・・・。

―何日かして、また怪しい臭いを感じる。

外注「すみません、ここでSQL実行するとエラー出ちゃうんですけど・・・。

え・・・ちょっとおまえ、もしかしてデバッグモードしらねーの・・・?

俺「そうですか・・・じゃあブレイクポイントを設定して、ちょっと見てみますか。」

俺「あー・・・、なんかここでこのメソッド実行すると、中でDBのコネクションを開放しちゃうみたいですね・・・。」

この程度は普通にこなしてほしい・・・。

―何日かして、またまた怪しい臭いを感じる。

外注「あおかびさん、仕様書ではここでエラーチェックを行うってあるんですけど、チェックの内容が書いていなくって・・・

俺「あれ・・・?えーと・・・ここにありますよね、チェック内容は既存の○○と同一とするって」

おいおい、もしかして仕様書読む能力も無いのか・・・?

それとも1から10まで書かれてないと 出来ない人か・・・?

1から10まで書かれてる仕様とか、もうそれプログラムですから!今回そこまでする時間は無いですから!

とにかく色々やばかったです。

あとあと分かったことだけどこの外注、開発経験は最低でも5年以上あるらしいです。

俺と同等かそれ以上・・・。 いくらなんでも酷い。。。

そして外注のコードからバグが大量に検出されて今に至ります。

合計25件くらいバグが出ましたが17件くらいは外注のバグです。外注の担当の割合は半分以下なのに・・・。

仕様書に問題あったら仕様書直しておいてって言ったのに直ってない所多いし・・・。

単体テストの仕様書、「形だけ作ったので、追記して」って言ったのに全然追記されてないから漏れ漏れだし。

一番むかついたのが仕様書通り作られてないことが多いということ。

特にピキピキ来たのが、仕様書には「エラーチェックはセルからフォーカスが外れたときに行う。」と書いてあるにも関わらず、

「更新ボタン押下時にエラーチェックを行う。」と勝手に解釈しやがったこと・・・。

絶対これ、わざとです。仕様書にはしつこくフォーカスアウトって書いてあるのに、読み間違えようがない。

おおかたJavaScriptでフォーカスアウトによるチェックができないから逃げたんでしょう。

「分からないことがあったら遠慮しないで言ってください 」って俺も同僚も言ったのに。何度も。

外の人間だから遠慮してはいるものの、微妙に態度が偉そうだったし・・・ 、年下の俺に聞き辛かったのでしょう。

そんな訳で愚痴でした。

次の機会はしっかり外注管理しようと思います。基本、外注のコードは信じてはいけない・・!

上司に「外注の管理は同僚がやれ!」と言われても、俺がするくらいの勢いで管理しようと思います。

少なくとも、 仕様通りかのチェックとコードレビューは実施しようと思います。

というか、今回それしっかりやってればなあ・・・。

結局は自分の責任なんでしょうね。