Q and A (計算機実習 III)


目次


計算機実習 III/IV のページへ戻る

はじめに

講義に関して出た質問と回答をここに上げておくことにします。
(04/13 2012)

2014 年度用に多少修正しましたが、 過去の質問に対する回答の蓄積ですので、 現在の状況には合わない部分もあるかもしれません。 もしそういうものを見つけたら連絡してください。
(04/11 2014)

目次に戻る

Q and A 目次

目次に戻る

Q and A 回答


1. 授業全般に関する質問


Q.1.1. 実習資料はなぜ真ん中が空いているのか

A.1.1.

メモを書くスペースとしてあえて空けてあります。 多くの人が多分そういうスペースを必要とするだろうと思います。
(04/19 2012)

Q and A の目次へ戻る

Q.1.2. なぜ C 言語の続きをやらないのか

A.1.2.

いくつか理由があります。


(04/19 2012; 04/11 2014 更新)

Q and A の目次へ戻る

Q.1.3. 半年で複数の言語を新たに学ぶのは難しいのでは

A.1.3.

計算機実習 IV (III) のテーマをどのように決めたかを 先に少し説明しましょう。

私が計算機実習 IV (III) を担当することになって、 「C 言語の続き」をやるか、ほかのことをやるかをまず考えました。 その考察は 「Q.1.3. なぜ C 言語の続きをやらないのか」 に書いた通りです。

次に、ほかのことをやるとして、何をやるかを検討しました。そして、 「Q.1.3. なぜ C 言語の続きをやらないのか」 にも書いた通り、バッチやスクリプトを知ることが有益だと考えて、 その手の話をやることにしました。 そしてその候補として、以下のものを上げてみました:

バッチファイル、VBScript、Javascript、Perl、Ruby、PHP、 なでしこ、HSP、AWK、gnuplot
このうち、VBScript や Javascript、Perl、Ruby、PHP などの かなりしっかりしたもの、 考え方がやや難しいものは修得には時間がかかりますから、 ほぼ半年を通してその言語一つを学ぶ、という形になるでしょう。 しかし、それらの言語はそれ自体多少難しいわけですから、 「Q.1.3. なぜ C 言語の続きをやらないのか」 で書いたことにも合わないことになります。 ということでそれらは候補からは外しました。

それらに比べれば「なでしこ」や「HSP」は少し易しいし、 MS-Windows 専用だから実習しやすい、という利点はありますが、 やや特殊な話、ローカルな話になりすぎるきらいがありますし、 歴史が浅いという欠点もあります。

それで取得が易しく、歴史もあり、スクリプトらしい話もできる 「バッチファイル」「AWK」「gnuplot」が残ったわけです。

しかも、このうちどれか一つを深くやるよりも、 むしろそれぞれを浅くやり、 色々な考え方を知ることの方が有益だろうと考えました。 それで 3 つの言語を浅くやることにしたわけです。 「バッチファイル」「AWK」「gnuplot」は、 ちゃんとやろうとすればそれぞれに 200 ページ以上の本が出ている位で、 相当時間がかかりますが、 今回この計算機実習でやることはそれぞれの入口部分に過ぎませんし、 考え方もそれほど難しくはなかっただろうと思います。

新しい言語だったために あまりにたくさんのことをやったように感じたかもしれませんが、 実際にはごく浅いことをやっただけなので 「半年で複数の言語を新たに学ぶのは難しい」 というほどのことはないと思います。 資料に書いてあることを順番に実習していけば (授業中に終わらなくても、授業時間以外に実習をやれば) ちゃんと理解できる程度のものであっただろうと思います。

ちなみに、ほかの大学でも半年で複数の言語の実習というのは 普通に行われています。 実際、新大 (工学部) では以前「アセンブラと C 言語」なんていう 半年の実習科目がありました。 今回のはそれに比べてもはるかに易しいと思います。
(08/03 2012; 04/11 2014)

なお、2013 年度は、当初は gnuplot もやる予定でしたが、 結局 gnuplot はやりませんでした。 2014 年度以降も外す予定です。
(04/11 2014)

Q and A の目次へ戻る

Q.1.4. 実習の前に配布プリントの説明をしないのか

A.1.4.

計算機実習やプログラミング学習については、 一般的に以下のことが言えると思います:

よって、説明をした上でそれをやってもらう、という方法よりも、 たくさん実習を間違いながらやってもらう、 ということの方が理解は進むと思います。

例えば、情報電子工学演習でも、 自分で問題を読んで問題を解くという形式を取りましたが、 今回もこのような「自習形式」を取ることで、 「書いてあることを読んで理解する」という能力を鍛える、 そして、自分のペースで実習する時間を増やす、 ということを計ったわけです。

そのため、資料は全部自習可能なように、 口頭での説明が必要ないように何度も推敲を重ねました。 この実習により、自分で資料を見て、 自分で考えて内容を理解する能力が 多少でもついてくれればと思っています。 実際、そういう能力が上がった気はしませんか ?

そもそも大学を出れば、 これまでのように本を解説してくれる人などほとんどおらず、 自分で本を読んで勉強していかなくてはなりません。 大学生は徐々にそういう勉強スタイルを身につけていく必要があると思います。
(08/03 2012)

Q and A の目次へ戻る

Q.1.5. 「やったこと、わかったことを説明せよ」 「確認し説明せよ」は何を書けばいいのか

A.1.5.

普通に考えて、「やったこと、わかったことを説明せよ」は、

  1. まずコマンドプロンプトかバッチファイルで 実際にどういう作業をしたかを書く (言葉による説明も必要かもしれないが、むしろ実際にした作業をそのまま書く)
  2. その結果何が表示されたかを書く (実際に表示されたものをそのまま書くが、書ききれない場合は言葉による説明も可)
  3. それらの結果から判断してわかることを言葉で説明する

といった感じでしょうか。

「確認し説明せよ」もほぼ同じです。
(10/19 2013)

Q and A の目次へ戻る

Q.1.6. 「バッチファイルを書け」という課題にも説明を書かなければいけないのか

A.1.6.

「説明せよ」と書いてなければ基本的には必要ありません。 けど、書きたければ書いても構いません。
(10/19 2013)

Q and A の目次へ戻る

Q.1.7. 「どうなるか」という課題には画面表示を書けばいいのか

A.1.7.

「どうなるか」は、確かにあいまいな表現かもしれません。 何をすればいいかは課題によって違いはあるかもしれませんが、 基本的には「どういう現象が起きたかを説明すること」を求めています。

この場合「起きた現象」とは、画面表示だけを指すわけではありません。 画面には何も表示されないけれど、 実際にはファイル名が変わってしまうとか、ファイルが新たに作られるとか、 表示だけでは説明できない現象が起きていることが多いです。 それを説明してください。

目に見える事実と実際に行われたことにギャップがある場合、 例えば画面表示はこうなっているんだけど、 実際にはこういうことが行われている、という場合には、 その目に見える事実が何を意味しているか、なぜそうなるのか、 などの説明が必要な場合もあるでしょう。

とにかく、「起きている現象の内容、意味をわかるように説明する」 ということを目標にすればいいでしょう。
(04/15 2014)

Q and A の目次へ戻る

Q.1.8. 課題のヒントとして書いているものは必ず使わなければいけないのか

A.1.8.

もちろんそんなことはないですが、 使ってない答案はたいてい間違えています。

なぜヒントを使っていないかといえば、 「そのようなヒントが必要なほど難しい問題だということがわかっていない」 という回答が大半です。 だから、ヒントがある意味が理解できないようなら、 ほぼ間違えていると見ていいでしょう。

プログラムが得意な人の中に、 自分独自の方法を編みだして解きたいのか、 そういった傾向が強い人がいます。 しかし一般にプログラムは、 自分独自のプログラムというのはあまり好まれません。 むしろ、誰が読んでも理解できるわかりやすいもの、 標準的なもの、シンプルなものが好まれ、良いものとされ (なぜだかわかりますか ?)、 本当にプログラムの実力がある人はそういうものを書きます。
(04/22 2014)

Q and A の目次へ戻る

2. コマンドプロンプト、バッチファイルに関する質問


Q.2.1. 「cd [dir]」としてもうまくいかない

A.2.1.

まず、「cd [dir]」としないでください。 これは説明のために書いたもので、 そのまま「cd [dir]」としてはいけません。

「cd」はコマンド名だからそのまま書かなければいけませんが、 例えば 2014 年度であれば 2 回目の資料の 4 ページにも書いてある通り、 [dir] 自体を具体的なパスに置き換えて実行するので、 [ ] はつけません。 例えば今の場所に「jisyu」という名前のディレクトリ (フォルダ) がある場合、「cd jisyu」のように実行します。

指定したディレクトリ (フォルダ) が存在しない場合は、 もちろんうまくいきません。
(04/20 2012; 04/11 2014 修正)

Q and A の目次へ戻る

Q.2.2. バッチファイルを保存したはずなのに実行できない

A.2.2.

いくつかの原因が考えられます。

いずれにせよ、コマンドプロンプト上で「dir」か「dir /w」としてみれば、 実行しようと思っているバッチファイルがあるかどうかわかるので、 それで確認できるはずです。
(04/20 2012; 04/11 2014)

Q and A の目次へ戻る

Q.2.3. バッチファイルのどこでエラーが起きているのかよくわからない

A.2.3.

バッチファイルの先頭に「@echo off」をつけている場合は、 その行を「rem @echo off」のようにコメントアウトして実行すれば、 バッチファイルのコマンド一つ一つが表示されて実行されます。

変数も展開された結果が表示されるので、 どういう風に実行されているのか、 どのようなコマンド行として実行されるのかが表示され、 エラーもどこで起きているかがわかると思います。
(04/20 2012)

ちなみに、エラーの行は、 実際に実行されるべき行が表示される前にエラーメッセージが表示されるようなので、 エラーメッセージが表示された「次の行」に問題があることが多いようです。
(05/07 2012)

Q and A の目次へ戻る

Q.2.4. 「ファイル名」とはどこまでをさすのか

A.2.4.

MS-Windows では「ファイル名」という呼び方には 2 つの流儀があるようです。

  1. file1.jpg の「file1」を「ファイル名」と呼び、 「jpg」を「拡張子」と呼ぶ流儀
  2. file1.jpg 全体を「ファイル名」と呼ぶ流儀

しかし、1. の場合は拡張子を含んだ全体を何と呼ぶのか、 2. の場合は拡張子以外の部分を何と呼ぶのか、 が明確に広く統一された呼び方があるわけではありません。 例えば、参考書としてあげてある「Windows コマンドプロンプトスパテク 242」は、 その両者をごっちゃにして使っています (ある場面ではファイル名として 1. を、 ある場面では 2. をファイル名としている)。 他にも調べてみましたが、

のような感じでした。 つまり、手近に調べたところでは、 1. の立場の本は少なく、2. の方が優位なので、 多分 2. のように理解する方がいいでしょう。

ということで、 2014 年度ならば第 2 回の資料の p4, p5 で書いた通り、 2. の立場を取ることにします。
(05/08 2012; 09/19 2013, 04/11 2014 修正)

Q and A の目次へ戻る

Q.2.5. コマンドプロンプトの無限ループを止めるには

A.2.5.

Ctrl-C (Ctrl キーと C キーを同時に押す) でプロンプトに復帰します。
(06/01 2012; 09/19 2013 修正)

Q and A の目次へ戻る

Q.2.6. %errorlevel% を echo コマンドで確認するとはどういうことか

A.2.6.

現在の環境変数の値を確認するには、 set コマンドで一覧表示する方法もありますが、 これだとたくさんの環境変数が一度に表示されてしまいますし、 %errorlevel% のような動的な環境変数は表示されません (資料にもそう書いてあります)。

よって、その環境変数の値を echo コマンドで表示させるしかありません。 echo コマンドは、その後ろに書いた任意の文字列を表示できますが、 「%変数%」はちゃんとその変数値に置き換えてくれます。
(10/08 2013)

Q and A の目次へ戻る

Q.2.7. プロンプトが出なくなった

A.2.7.

多分、コマンドプロンプトで「echo off」をやったのでしょう。 「echo on」としてください (2014 年度ならば 1 回目の資料の p6 参照)。

なお、それはもしかしたら、資料に書いてある「@echo off」を コマンドプロンプトの上で実行してしまったのではないでしょうか。 だとしたらそれは間違いです。

資料の四角い枠で囲ってある部分は、 コンピュータに表示されるものを書いているのですが、 それにはおおまかに 2 種類あって、大半は

  1. 「Z:¥>」で始まっているもの = コマンドプロンプト上で作業する内容
  2. そうでないもの = バッチファイルなど、 自分でファイルを作ってそちらに書くべき内容

を意味しています。気まぐれに「Z:¥>」をつけたり つけなかったりしているわけではありません (2014 年度ならば 1 回目の資料の p1 の脚注参照)。 特に、「@echo off」で始まっているものは間違いなく バッチファイルに書く内容です。

バッチファイルに書くものは、 たいていはコマンドプロンプト上でも実行できますが、 すべてが同じではありませんし、 そもそも「@echo off」はコマンドプロンプトで実行しても ほとんど意味がありません。 文章を細かく読み取ってください。

もし、どちらの話かわからなければ、質問してください。
(10/08 2013; 04/11 2014 修正)

Q and A の目次へ戻る

Q.2.8. 資料に書いてある「test1.bat ...」を実行してもうまくいかない

A.2.8.

資料に書いてあるコマンドのサンプルには、 以下の 2 種類があります。

  1. 実際にその通りやってうまくいくもの
  2. 通常こんな風に実行しますよ、とか こんな風に実行した場合に次のようになりますよ、という説明のためのもの

文脈で読み分けてもらうしかありませんが、 test1.bat の中身が書いてなければ、 それは 1. ではなくて 2. でしょう。

test1.bat の中身が書いてあれば、 それを自分で書いて作らなければ実行できません。

そもそも、「test1.bat」という名前からして、 それは元々コンピュータにインストールされているものではありません。
(10/08 2013)

Q and A の目次へ戻る

Q.2.9. 「echo」は何と読むのか

A.2.9.

C 言語の「char」などもそうですが、 この手のものには、作者が「こう読め」と指定している場合を除いては、 正式な読み方は決まっていないことの方が多いです。

だからこれも「えちょ」とか読む人もいて、 そしてそれは間違いではありません。 元の意味からするとこれは英単語の「echo (エコー)」を指していますので、 「エコー」と読むのが普通だと思います。 もちろん「イー・シー・エイチ・オー」でも構いませんが、 通じにくいかもしれません。

「char」のような省略名の場合は「普通の」読み方は不定で、 例えば「dir」は「でぃあ」「でぃれ」「でぃる」「でぃー・あい・あーる」 などのように読まれていると思いますが、 元々は「directory (ディレクトリ)」の略だと思います。 ただし、コマンドのフルネームは多分もう少し長いでしょう (directory list ?)

「cls」は「CLear Screen」の略でしょうか。 「md」「rd」「cd」は、 「Make Directory」「Remove Directory」「Change Directory」の略です。 語源がわかるとコマンド自体が覚えやすくなると思います。

ちなみに、C 言語の「char」は「ちゃら」「ちゃー」などと 読まれることが多いようですが、 語源は「character (キャラクタ = 文字)」なので、 私は「キャラ」と呼んでます。
(10/08 2013)

Q and A の目次へ戻る

Q.2.10. バッチファイルで先頭に「@echo off」と書く代わりに、 すべての行の先頭に「@」をつけてもいいのか

A.2.10.

動作には違いがないので、間違いではありません。

しかし、もしデバッグ用にそのコマンドの実行の echo を ON にしたい場合、 すべての行の先頭に「@」をつけている場合は それをすべて外して回らないといけませんが (戻す場合はまた全部に「@」をつけないといけない)、 「@echo off」の方法ならその行を rem でコメントアウトするだけで済みます (戻す場合も rem を消すだけ)。 「@echo off」の方が優れていると思います。

これは、C 言語のコメント記号の // と /* */ の関係に似ていなくもありません。

よって、(2014 年度ならば第 1 回目の資料の p6 に書いたように) バッチファイルの一行目は「@echo off」から始めるようにしてください。


(10/19 2013; 04/11 2014 修正)

Q and A の目次へ戻る

Q.2.11. コマンドプロンプトで実行したものを「バッチファイルを書け」 の課題に書いたら何が悪いのか

A.2.11.

これら、「バッチファイルを書け」の条件に合致していないものは、 もちろん正解にはなりません。 実際にバッチファイルを書いて試す、ということをしていれば そういう間違いはしないはずだと思います。
(10/19 2013; 04/11 2014 修正)

Q and A の目次へ戻る

Q.2.12. 0 から 5 までの乱数を返す「set /a x=%random% %% 6」は 「set /a x=%random% * 6 / 32768」でもいいのか

A.2.12.

%random% は 0 から 32767 までの乱数を返し、 そして set /a はもっと大きい数の計算もできますから (32767 * 6 位は余裕で可能)、 基本的にはそれでも結構です。 どちらも 0 から 5 までの乱数をほぼ均等に返すことになります。

ただし、「どちらが優れているか」ということだと、 やや前者の方に分があるでしょう。その理由は、

などがあげられます。 これらは、特に別な言語で同じことをやろうとするときにも 意識する必要があります。
(10/19 2013)

Q and A の目次へ戻る

Q.2.13. 「オペランドがありません」と表示される

A.2.13.

「オペランド」は演算子、 すなわち「set /a」の右辺に書く計算記号のことで、 定義されていない演算子を使ったことを意味します。

コマンドプロンプトでは割り算の余りは % としなければならないのに、 バッチファイルでの余りの形式である %% を、 コマンドプロンプトで使った場合などに出ます。
(10/22 2013)

Q and A の目次へ戻る

Q.2.14. バッチファイルを実行すると「コマンドの構文が誤っています」 と表示される

A.2.14.

バッチファイルの書き方が間違えている場合に起こります。 具体的な事例は色々あると思います。

問題の箇所を特定するには、 先頭の「@echo off」を rem でコメントアウトして実行みてください。 正しく実行された部分が表示され、 「コマンドの構文が誤っています」と表示された「後」に その問題の行が表示されるはずです。

例えば、「if [条件](」のように if 文の条件部分と それにつづくカッコの間にスペースを入れなかったりすると出るようです。
(10/22 2013)

Q and A の目次へ戻る

Q.2.15. if 文で環境変数の値の設定・表示がうまくいかない

A.2.15.

if 文は第 4 回で紹介しましたが、 例えば以下のように、バッチファイルのオプション %1 が表示されるだろうと期待されるバッチファイルを実行すると、 実際にはオプション %1 の値がなんであろうと 1 が表示されてしまいます。

set x=1
if "%1" neq "" (
  set x=%1
  echo %x%
)

容易に避けることができるので、 第 4 回では説明は省略しましたが、 実はこれは第 5 回の for 文のところで紹介する 「遅延展開」と関係があります。

if 文や for 文では、 複数のコマンドを ( ) で囲んで一つのセットとして実行できますが、 その中に環境変数が含まれた場合、 その環境変数を値に変換するのは、 順番に行われるのではなく、 そのブロック部分の実行前に行われてしまいます。 例えば上の ( ) ブロックは、実行前に %x% の値への変換が行われてしまいますが、 ( ) ブロックの実行前は x は 1 なので、

set x=[実際の %1 の値]
echo 1
と変換されてから、この 2 行が実行されています。 よって表示が常に 1 になるわけです。

ただ、この ( ) 内の「set x=」による設定値は、 このブロックの実行後であればちゃんと代入した値を見ることができますので、

set x=1
if "%1" neq "" (
  set x=%1
)
echo %x%

のようにすれば正しく %1 の値が表示されることになります。

ブロックの中でさらに x の値を操作する場合は、 順次 %x% の値を変更できるようにしたいだろうと思いますが、 その場合は、第 5 回で説明する「遅延展開機能」を利用してください。 ブロックの中のコマンドでも環境変数の値が順次評価されるようになります。
(10/23 2013)

Q and A の目次へ戻る

Q.2.16. 「pause.」でもデフォルトの出力が出てしまう

A.2.16.

多分「echo.」からの類推だと思いますが、 「echo.」で表示なしで改行だけを行うようになるのは echo コマンド特有の仕様です。 よって、pause もそれ以外のコマンドも、 「.」をつけることで表示が消えるわけではありません。

pause で表示を消すには、nul へのリダイレクトを行います。 詳しくは、資料の出力リダイレクトのところを参照してください。
(04/11 2014)

Q and A の目次へ戻る

Q.2.17. move で複数のファイルを , 区切りで指定できない

A.2.17.

「help には、複数ファイルを移動するには , で区切るとあるが、 それがうまくいかない」という質問でしたが、 確かに help にはそんな風に書かれていて、しかもうまくいきません。

私も詳しくは知りませんでしたので、少し調べてみたところ、 どうやらある時期に仕様変更されているようです。 MS-Windows 95/98/Me 系統の move コマンド (当時は外部コマンドの move.exe) では , 区切りで複数のファイルが指定できていたそうですが、 MS-Windows 2000/NT 系統の move コマンド (当時は外部コマンド) は単一のファイル (ワイルドカードは可) しか指定できなかったそうです (以下参照)。

MS-Windows XP/Vista/7 はいずれも MS-Windows NT 系統の OS なので、 それで MS-Windows 2000/NT 系統の move コマンドの仕様なのだろうと思います。 なお、MS-Windows XP からは move.exe という外部コマンドではなく、 cmd.exe の内部コマンドになっています。

ということで、ヘルプのドキュメントのバグだろうと思います。 複数ファイルを move したい場合、ワイルドカードは使えるのでそれを利用するか、 または for コマンドとセットで使用するか、でしょう。

なぜ仕様が変わっているのにヘルプドキュメントが直っていないのか についてはよくわかりません。 単なる直し忘れかもしれませんので、 なんだったらマイクロソフトに報告してみてください。 もしかすると喜ばれるかもしれません。
(05/30 2014)

Q and A の目次へ戻る

3. otbedit に関する質問


Q.3.1. コマンドプロンプトから otbedit が立ち上がらない

A.3.1.

自前で「スタート」→「アクセサリ」→「コマンドプロンプト」などとして コマンドプロンプトを立ち上げた場合はそうなります。 理由は、そのコマンドプロンプトからは otbedit.exe が見つけられないからです (Path 環境変数が otbedit 用になってない)。

計算機実習 IV 用のコマンドプロンプトを立ち上げてください。 その上なら otbedit が立ち上がるはずです。
(04/19 2012; 09/19 2013 修正)

Q and A の目次へ戻る

Q.3.2. otbedit を自分のパソコンにインストールするには

A.3.2.

まず、otbedit の配付物を以下からダウンロードしてインストールします。

ダウンロードしたファイルを展開して、 そこに入っている ReadMe.txt を読んでください。 インストーラはなく、適当なところに展開すれば そこにあるプログラム otbedit.exe を実行できます。

なお、この講義で使用している AWK モード、BAT モード、gnuplot モードは otbedit は標準ではサポートしていません。 AWK モード、BAT モード用の設定ファイルは以下からダウンロードしてください。

bat.cfg, bat.txt, awk.cfg, awk.txt のファイルを、 otbedit を展開したディレクトリの data ディレクトリ内に入れます。

gnuplot モード用の設定ファイルは以下に置きます。

これも同じく otbedit の data ディレクトリ内に入れます。 その後、この data ディレクトリにある languages_default.txt というファイルを languages.txt という名前でコピーして、 その languages.txt ファイルを編集して 以下のような行を入れてください:

AWK,AWK,awk.cfg,*.awk
Batch,Batch,bat.cfg,*.bat
gnuplot,gp,gnuplot.cfg,*.gp;*.plt;*.dem
これで otbedit を立ち上げると、AWK モード、Bat モード、 gnuplot モードが追加されるはずです。 詳しくは、doc ディレクトリ内の languages.txt というファイルで 説明されています。
(06/26 2012)

Q and A の目次へ戻る

Q.3.3. otbedit で「.dat」のような拡張子で保存するには

A.3.3.

otbedit では編集モードがあって、 デフォルトではファイル名に自動的にモードに応じた拡張子をつけます。 例えば AWK モードでは「.awk」という拡張子をつけますが、 この場合でも保存する際に拡張子まで指定して、 例えば「file.dat」という名前で保存するように指定すれば、 .awk という拡張子はつかずに file.dat と保存されるはずです。

もし「file.dat.awk」などとなってしまう場合は (そうはならないと思いますが)、 保存するときに「ファイルの種類」を「すべてのファイル (*.*)」にしてみるか、 またはコマンドプロンプトで ren や move でファイル名を変更してください。
(06/26 2012)

Q and A の目次へ戻る

Q.3.4. otbedit で [Bat] モードが見当たらない

A.3.4.

どうやら自分で otbedit をダウンロードして 再インストールした人がいるようですが、 「計算機実習 IV」のコマンドプロンプトで「otbedit」と起動すれば 既にちゃんとインストールされている otbedit が立ち上がり、 ちゃんと [Bat] モードも [AWK] モードも [gnuplot] モードも 使えるようになります。
(06/26 2012)

Q and A の目次へ戻る

Q.3.5. 編集したバッチファイルを保存できない

A.3.5.

ファイルを保存しようとすると「共有違反です」などと表示されて ファイルが保存できないのは、 そのファイルが別なところで参照されていることを意味しています。

例えば、コマンドプロンプトでそのバッチファイルを実行している最中に 保存しようとするとそのようになります。 バッチファイルが無限ループになっているときなどは バッチファイルが動作中であることに気がつきにくいと思います。 無限ループを止めるには 「Q2.5. コマンドプロンプトの無限ループを止めるには」 を参照してください。
(10/22 2013)

Q and A の目次へ戻る

Q.3.6. otbedit で単なるデータファイルを作成するには

A.3.6.

例えば以下のようにします。

  1. C-N で新しいタブを開き、
  2. 「テキストモード」(上の「Txt」というアイコン) で編集し、
  3. 保存する際に「ファイルの種類」を「Text ファイル(*.txt)」から 「すべてのファイル (*.*)」に変更し、 適当な名前をつけて保存する

なお、「ファイルの種類」を「すべてのファイル (*.*)」に変更しないと、 テキストモードでは .txt という拡張子を強制的につけるかもしれません。 例えば、ファイル名として「file1.dat」のようにしても、 「file1.dat.txt」のようなファイルができてしまうかもしれませんので、 .txt の拡張子のデータファイルを作るのでないなら、 一応「すべてのファイル (*.*)」に変更した方が無難でしょう。
(10/28 2013)

Q and A の目次へ戻る

4. AWK に関する質問


Q.4.1. AWK を自分のパソコンにインストールするには

A.4.1.

講義資料にもある以下のサイトからファイル (gawk-mbcs-win32-20051223.zip) をダウンロードしてください。

以下にも置きます。

その .zip ファイルを展開するといくつかのファイルが含まれていますが、 本当に必要なのは、「gawk.exe」(446464 バイト) というプログラムファイル一つだけです。 インストーラもありませんので、 例えば以下のようにして使用できます。

  1. 実行したい場所にその gawk.exe を置いて実行する
  2. gawk.exe を自分のパソコンの適当な場所にインストールして、 gawk を実行する前に PATH 環境変数にその場所を追加する
  3. gawk.exe を自分のパソコンの適当な場所にインストールして、 gawk.exe を実行するコマンドプロンプトのショートカットを作成して、 そのコマンドプロンプトの起動時に PATH 環境変数を追加するようにする

2., 3. の説明は面倒臭いので、適当に検索して調べてください。 多分 1. が一番てっとり早いでしょう。 gawk.exe はわずか 436KB なので、移動、持ち運びは容易です (これほど小さいプログラミング言語はめったにありません)。

なお、インターネット上には、 これ以外のバージョンの MS-Windows 用の GNU awk もいくつか存在しますが、 それぞれで二重引用符の意味や日本語文字処理などに多少違いがありますので、 注意が必要です。
(06/26 2012)

Q and A の目次へ戻る
目次に戻る
計算機実習 IV のページへ戻る
作成日: 01/05 2017
竹野茂治@新潟工科大学 (shige@iee.niit.ac.jp)