前回、コマンドプロンプトについて書きましたが
まだまだ初心者ですので、新しく
新しいことがあったので今回もコマンドについて書いていきます。
プログラムを作って、走らせるトライandエラーがし終わり
実行する際に、内容にechoが入ったり、
外部のソフトの仕様でコメントが表示されたりしていました。
これを見えないようにするかつ、内容についても残すために
ファイル出力を行います。
実行するプログラムの後ろに
実行ファイル > 出力ファイル名
これにより、実行された時に表示される内容を出力することができます。
さらに、効果として、処理速度が格段に早くなります。
表記する処理自体がかなりの負担になっているんですね。
プログラミング外でのエラーやメッセージ(ファイルが見つかりません、など)は
コマンドプロンプトに表示されます。
出力、入力、リダイレクト、、、
まだまだ知らないことがあるのでこれからも勉強して
メモしていきたいと思います。
ではでは
Translate
2014年6月19日木曜日
2014年6月5日木曜日
【Windows】初バッチファイル
晴れたら暑くて、雨が降ると一気に気温が下がったりと服の調整が大変ですね。
今日はコマンドプロンプトで作業することがあったのでメモとして残しています。
elastixという医用画像処理用ソフトを使用することがありまして、
このソフトはコマンドプロンプトから処理を行います。
実行ファイルは.batというバッチファイルになります。
MacやLinuxでコマンドの知識は少しあったのですがWindowsではコマンドが多少異なるので使用してきませんでした。
今回、初めてバッチファイルを使用するので色々心配でしたが思っていたよりも処理が単純で
書きやすかったのが印象です。
elastixについては時間があれば、書いていけたらいいなと思いますが
今日はメモなのでelastix以外でのコマンドについて残していきます。
まず 変数 %% or %
画像名やフォルダ名の入力を省略するために変数に代入します。
%%[変数名]
変数名の前に"%"を付けることで変数として扱われます。
コマンド上では"%"でいいのですが、バッチファイルでは"%%"にするようです。(謎)
以下変数はバッチファイル用"%%"で書いています。
次に for文 for %%[変数] in (リスト) do (コマンド)
for文を使って変数に繰り返し代入をするために使用します。
for文には for の後に "/l" ・・・"スラッシュ+L"を入れることで
リストの部分が ([初期値],[増分値],[終了値])と指定することが出来ます。
for /l %%a in (8,-2,-3) do echo %%a
echoはコマンドプロンプトに表示させる命令で、上のfor文ならば
8、6、4、2、0、-2とコマンドプロント上に代入された文字が一行ずつ表示されます。
最後に テキストファイル読み込み
これが大変だと思っていましたが、なんと!for文で解決しました。
for の後ろに "/f" と入力することでファイルリストを変数に入力してくれました。(なんていい子)
for /f "[オプション]" %%a in (ファイルリスト) do ()
ファイルリストに書かれた一単語目ファイル名を入力すれば変数に代入されます。
"aaa bbb"ならば"aaa"のみ代入されます。
"aaa,bbb"ならば"aaa,bbb"と読み込まれます。
オプションは読み込み方法を変更します。
一行すべて読み込む場合には "delims="と入力します(ダブルコーテーション含む)
もしCSV形式などカンマで区切られているものを一つずつ読み込む場合には"delims=,"と
書けば
"aaa,bbb" は
"aaa"
"bbb"
と別々に読み込まれます。
おまけ
実際には上のやり方で完成するはずだったのですが、実行時にポカをしてしまい。
フォルダ名を間違えて作成してしまいました。(for文で大量作成)
よって、フォルダ名を変更するコマンドを使用したので残しておきたいと思います。
move [現存フォルダ名] [新しいフォルダ名]
"move"を使うことでフォルダの中に含まれているファイルはそのままでファイル名のみ変更出来ました。(ほっ)
気まぐれ更新になってますが、勉強したことをこれからも残していきたいと思います。
ではでは
2014/1110 追記
for文で変数がうまく展開されないことがあったので追記
遅延環境変数なるものが存在しそれをfor文外で有効にしてから変数を感嘆符(!)で囲んでます。
setlocal enabledelayedexpansion
よく理解していないので記事には出来ませんが
ぐぐってたら上のコマンドが複数のサイトで紹介されていました。
Yahoo知恵袋のベストアンサーを参考にさせて頂きました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1092589030
2014/1110 追記
for文で変数がうまく展開されないことがあったので追記
遅延環境変数なるものが存在しそれをfor文外で有効にしてから変数を感嘆符(!)で囲んでます。
setlocal enabledelayedexpansion
よく理解していないので記事には出来ませんが
ぐぐってたら上のコマンドが複数のサイトで紹介されていました。
Yahoo知恵袋のベストアンサーを参考にさせて頂きました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1092589030
ラベル:
コマンドプロンプト
2014年5月14日水曜日
【Matlab】数字を文字列に
【Matlab】 数字を文字列にに変換
http://www.mathworks.co.jp/jp/help/matlab/ref/num2str.html
文字列結合の strcat を使うときに数字の入った変数が混ざると認識してくれないので
数字を文字列に変換する作業が必要となったので探していたらありました。
リンク先に詳しく書いていますが
A = 10;
B = num2str(A);
A =
10
B =
"10"
となります。
http://www.mathworks.co.jp/jp/help/matlab/ref/num2str.html
文字列結合の strcat を使うときに数字の入った変数が混ざると認識してくれないので
数字を文字列に変換する作業が必要となったので探していたらありました。
リンク先に詳しく書いていますが
A = 10;
B = num2str(A);
A =
10
B =
"10"
となります。
2014年2月8日土曜日
【Javascript】 Math.random使い方
Javascript メモ
座標をランダムに表示するために
Math.random() を使おうと思ったのですが
プラスの値しか表示できないので、マイナスの座標を使うために
使用したのでメモを残しておきます。
Minnum = -5;//表示最小値
numrange = 10;//表示範囲「0-9」
cod = Math.floor(Math.random()*numrange) + Minnum;
Math.floorで小数点を丸めてランダムの値を最小値からプラスして
表示させることにしました。
座標をランダムに表示するために
Math.random() を使おうと思ったのですが
プラスの値しか表示できないので、マイナスの座標を使うために
使用したのでメモを残しておきます。
Minnum = -5;//表示最小値
numrange = 10;//表示範囲「0-9」
cod = Math.floor(Math.random()*numrange) + Minnum;
Math.floorで小数点を丸めてランダムの値を最小値からプラスして
表示させることにしました。
ラベル:
Javascript
2014年1月28日火曜日
ソフトウェアが起動してもディスプレイから見えない時の対処
中身的には初投稿
研究に関係なく困ったことがあったので
その内容と対処法について書きます。(windows対象)
内容は、タイトル通りなんですが
プログラミングをしようとアプリ(Sublime Text2)を立ち上げたときに
下にアイコンは表示されるけど、ディスプレイに表示されなくなりました。
アイコンをクリックするとディスプレイの外で表示されているようなアニメーションになり
その後の操作が出来ませんでした。
ネットで解決策を検索していた結果、ショートカットを使えば解決できることがわかりました。
(私の場合はディスプレイ左上)
ショートカットを入力したら次に 「M」キーを押します。
そうするとカーソルが十字になるのでマウスかキーボードで移動してディスプレイに表示させれば
解決です。
原因としておそらくマルチディスプレイをしているせいで、
初期表示の座標がおかしくなってしまったのかもしれません。
たとえば、ソフトウェアの中には複数のウィンドウを開くものもありますので、
もしウィンドウの表示がおかしければ試してみてください。
p.s
MATLABでSPMを起動できないエラーがあったのですが、原因はこれでした。
おそらく表示するための初期座標が正しくなかったのだと思われます。
この場合は、マルチディスプレイを解除してから、SPM起動で解決しました。
その後、再起動しても問題なく表示されるようになりました。
研究に関係なく困ったことがあったので
その内容と対処法について書きます。(windows対象)
内容は、タイトル通りなんですが
プログラミングをしようとアプリ(Sublime Text2)を立ち上げたときに
下にアイコンは表示されるけど、ディスプレイに表示されなくなりました。
アイコンをクリックするとディスプレイの外で表示されているようなアニメーションになり
その後の操作が出来ませんでした。
ネットで解決策を検索していた結果、ショートカットを使えば解決できることがわかりました。
・Alt + Space
Alt + Spaceキーで画像のようなメニューがディスプレイのどこかに出ます。(私の場合はディスプレイ左上)
ショートカットを入力したら次に 「M」キーを押します。
そうするとカーソルが十字になるのでマウスかキーボードで移動してディスプレイに表示させれば
解決です。
原因としておそらくマルチディスプレイをしているせいで、
初期表示の座標がおかしくなってしまったのかもしれません。
たとえば、ソフトウェアの中には複数のウィンドウを開くものもありますので、
もしウィンドウの表示がおかしければ試してみてください。
p.s
MATLABでSPMを起動できないエラーがあったのですが、原因はこれでした。
おそらく表示するための初期座標が正しくなかったのだと思われます。
この場合は、マルチディスプレイを解除してから、SPM起動で解決しました。
その後、再起動しても問題なく表示されるようになりました。
備忘録始めました
初めまして
始めました
ねこのはと申します。
PET画像の研究でSPMを使っています。
タイトル通り備忘録ということで
忘れやすい自分のために
覚えているときに書いていこうと思います。
始めました
ねこのはと申します。
PET画像の研究でSPMを使っています。
タイトル通り備忘録ということで
忘れやすい自分のために
覚えているときに書いていこうと思います。
登録:
投稿
(
Atom
)
