LoginSignup
1
0

More than 5 years have passed since last update.

新人あるある(Dosバッチのお作法編)

Posted at

これは私が新人SEとして現場配属されてまだ2か月しかたっていませんが
直面した出来事をつらつらと書いて後世の新人に語り継いでいこうと思い書いています
今後もちょいちょい増やして後世の開発のヒントになれば幸いです
先輩方はこんなことあったなwって感じで見ていただけると嬉しいです

さて題目にもあるように今回のテーマはDosバッチです
ITの技術職に就く前に趣味とかで触られた方はお作法がわかっているとは思います
じゃあ誰向けに書いたかって?
ここで私の経歴を
大学までずっと文系、しかも数学が大の苦手で就活も金融系を目指していたほど
ひょんなことからITに携わることになり研修を受け現場でヒーヒー言いながら
ググって仕事してます

Javaを研修で学んだ以外はプログラミングなんてしたことありません
しかし同期には私みたいな人ばかりだったので今後もそういう人増えていくんじゃないかなって勝手に思ったってわけ
だからこれ書いてるんです
つまり、お作法を知らない人にこれを見ればお作法が何なのかわかっちゃって上司にドヤ顔できて定時で帰れるよっていう目的

前置き長くなっちゃいましたね、ごめんなさい
後世の新人がはよ帰らせろっていう声が聞こえた気がしました

ではまずDosバッチとは何ぞやってところから

ざっくり言えば「書いたコマンドを実行してくれるファイル」です
いちいちCMDに命令打つのめんどくさいでしょ
それをファイルをクリックするなり設定した時間になったら実行してねっていうこともできちゃうわけ

こんな感じですDosバッチってのは

先輩方がいろいろDosバッチに関する記事を書かれているので技術的なことはそちらを参照に…

ここではあくまでお作法をば
先輩方が当たり前にやっていることを丁寧に説明していこうかなと思います

ではまずはechoから行きましょうか
echoっていうのはログファイルとかに出力したい際に出力してくれるやつ
JavaでいうSystem.out.println("hoge");だね

こいつのどこに気をつけなきゃいけないんじゃって思う方は読み飛ばして結構
私が躓いたことの一つでもあるので誰かしらは躓くと思って書いてるんです

こいつは出力したい行一つ一つに書いてあげないと出力してくれないよ
\nができない不器用な子です

例えば命令の最初に
echo ipconfig /all
てかくとこの命令自体がログに出力できるって話

でもこれが
echo ipconfig /all
ping www.google.co.jp/
てかくとpingの部分が出力されないわけ

じゃあなんでこんなこと、いつ使うのっていう話になるけど
これ使うよ

なぜなら

"一つのバッチファイルで実行する命令は必ずしも一つだけとは限らないから"

ここで察したあなたはこれからも頑張れるけどまあ無理
私も無理だったから大丈夫

システムとかプログラムってのは証跡を残すことが一種の習慣というかそんな感じでずっとつきまとってきます
というのも何かしらのエラーが出た際にログファイルみたいな証跡があるとどこが問題かがすぐわかって修正がスムースに行くから

複数処理を書いた場合
"どのプログラムでエラーはいたかがわかる"っていうお話

私の上司は"処理の前後にそれぞれの処理の開始と終了を明示する文をつけてどの処理を行ってるか明示的にしなさい"と教えてくれました

現場ではこういったことも教えられるんですよ
保守する側はこれがあったほうが楽ちんですからね

ここまでで言いたいことが伝わっているといいけどとりあえずまとめておきます

echoのお作法

・出力したい各行につける必要がある
・処理の開始と終了が明示的になりどこでエラーはいたかが判明できる

この2点が理解できたらDosバッチ使いこなす第一歩に立ったといってもいいでしょう
でもまだまだいろいろありますよDosバッチ
私もまだ躓いてない部分もありますしネタもまだ尽きてないし(ここで尽かしたら読んでもらえないので小出しに…)

いろいろここで書くと長くなるし新人寝ちゃうからこんなところで
次回はechoやったし出力に関するお作法でもやろうかな

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0