call無しの他バッチスクリプト呼び出し

バッチスクリプトから他のバッチスクリプトを呼び出すときに、callで呼び出さないと戻ってこない物だと思っていた。

<<foo.bat>>
bar.bat
echo foo ・・・・・実行されない
<<bar.bat>>
echo bar

しかし、forだと実行される。

<<foo.bat>>
for %%A in (a b c) do bar.bat&echo foo ・・・・・echo fooまで含めてちゃんと3回実行される
echo after for ・・・・・これは実行されない
<<bar.bat>>
echo bar

ifも。

<<foo.bat>>
if a==a bar.bat&echo foo ・・・・・echo fooも実行される
echo after if ・・・・・これは実行されない
<<bar.bat>>
echo bar

構文解析の単位で実行が保証されると言うことか。

ノートPCディスク交換

ノートPCを買って4年近くになるので、ディスク交換。HDD 512GBから1TBに。
SSDにすることも考えたけど、結局HDDに。


最初は、DVDリカバリーしてきれいに入れ直そうと思ったけど、いざやろうとなるとめんどくさくなって、コピーすることにした。
ツールは、前回と同じ EASEUS DiskCopy http://www.easeus.com/disk-copy/ で。
現状は、Dドライブが拡張パーティションの論理ドライブになっているので、パーティションコピーにすることにした。ところが、MBRの書き込みがめんどくさそうなので、一旦はDVDリカバリーして、新HDDから起動できることを確認してからパーティションコピーで。


手順は、
1.新HDDを外付けケースに入れてパーティションの設定(diskpartコマンド)
2.新HDDを内蔵させて、DVDリカバリーでCドライブのみリカバリーして起動確認
3.EASUS DiskCopyをUSBにインストールして、USB起動
4.旧HDDを外付けケースに入れて、そこから内蔵HDDにEASEUS DiskCopyでパーティションコピー
5.新HDDで起動。Dドライブのドライブ名が付かなかったので(何故?)、Dと付ける
6.再起動
7.パーティションコピーでパーティションが旧HDDの大きさに縮んだので、パーティションサイズ拡張
8.再起動して完了

最初、DVDリカバリーじゃなくてディスク全コピーでMBRコピーして起動しようとしたけど、起動せず。


速度は、シーケンシャルで2倍、ランダムで1.3倍くらい。

2015-05-17追記

システムの復元の設定が無効になっていた。なおかつ古いドライブの設定が残っていた。
Cドライブは有効、Dドライブは無効にする。

RubyInstaller2.2をインストールしてgem関連でエラー

RubyInstallerで2.2.1が出たのでインストールした。前のバージョンはRuby213にリネームして残しておく。

SSL3問題(Windowsでgem install出来ない問題)については、Rubyディレクトリの外に正しい証明書ファイルを置いて、環境変数 SSL_CERT_FILE でそれを指しているので、Rubyを丸ごと差し替えても問題なし。ただ、環境変数をアンセットしても gem install 出来るようなので、標準添付の証明書は問題なくなったようだ。


今のところ問題点は3つ。


まず、gem install pryで、エラーが発生。

gem instal pry pry-doc
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError) 
    bad response Not Found 404 (https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/pry-0.10.1-x86-mingw32.gemspec.rz)

ググってもよくわからないが、mingw32版のpryの管理情報が不整合を起こしているのではないかというのが結論。
このサイト fastly.net だけがおかしいのかと思い、grep -R fastly.net \Ruby\lib で記述ファイルを探すと update_bundled_ca_certificates.rb に記述があるのでそこをコメントにしても同じ情況。

mingw32版バイナリじゃなくてソースからインストールすれば良いのではないかと思い、

gem install pry pry-doc --platform source

と、platformにsourceと指定してみるとうまくいった。


2つ目も同じくgemsで、net-ssh。Ruby2.2からdlライブラリが廃止されたので動かなくなった。
これはしょうがないので、使っているスクリプトについては当面はRuby2.1.3を使い続けることにして、バッチファイルで皮をかぶせた。


3つ目は、Nokogiri。

ruby -e "require 'nokogiri'"
D:/Ruby/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)

これもしょうがないので、使っているスクリプトについては当面はRuby2.1.3を使い続けることにして、バッチファイルで皮をかぶせた。


まだ、いろいろありそう。

MinGW/MSYSインストール

今まで、Unix系ツールはGnu-Win32パッケージ http://gnuwin32.sourceforge.net/packages.html を使っていたが、RubyInstallerでインストールしたRubyのGemsインストールのためにMinGWのDevKitを入れて併用していた。

MinGWのパッケージ管理ツールがあるというのに気づいたので、それでMinGW/MSYSを入れて、Gnu-Win32とRubyInstallerのDevKitを使わないことにする。

http://sourceforge.net/projects/mingw/files/Installer/ から、mingw-get-setup.exe をダウンロードして実行。

インストールしたMinGW Installation Managerを起動して、パッケージを選択する。

左側ペインで、Basic Setup(大まかな選択)と、All Packages(パッケージ個別の選択)が撰べるが、Basic Setupで、mingw-developer-toolkit と mingw32-base と msys-base を選択(右クリックして Mark for Installation)して、InstallaionメニューからApply Changesで各パッケージをインストールされる。

環境変数PATHへの設定をする機能が無いようなので、自分で \MinGW\bin と \MinGW\msys\1.0\bin を追加する。

iTunes12でカラムブラウザの表示方法

「iTunes12でのカラム表示」http://takabo.net/2014/10/21/itunes12-column-browser/ より:

  1. 真ん中上で「プレイリスト」を選択
  2. 右上で「曲」を選択
  3. メニューバーで[表示]→[カラムブラウザ]→[カラムブラウザを表示]

カスペルスキーの「入力情報の漏洩防止が有効です」問題

ノートンインターネットセキュリティー から カスペルスキーインターネットセキュリティー に切り替えて困ったこと。
Amazonの検索欄に文字入力しようとすると、カスペルスキーが介入して「入力情報の漏洩防止が有効です」との表示を出し、いったんカスペルスキーに入力されてから、ブラウザに入力される。


しかもバグがある!


レジストリの設定で、英数キーをコントロールキーにしているのだが、それが認識されず、ctrl-V としているつもりでも、単に v や V と入力されしまう。これには困った。


設定でオフに出来るだろうと思って調べると、
「設定」画面の、「詳細」を選んで、「データ入力の保護」。「入力情報の漏洩防止」がこの機能のようだ。
全部オフにしてもいいのだが、「カテゴリの編集」というのがあるので、選択的にオフに出来そう。
「カテゴリの編集」画面でカテゴリ別のオン・オフも出来るが、「特定のWebサイトの設定」というのがあるので、それを選ぶ。
「追加」で amazon.co.jp の「サイト全体」を「保護しない」設定にして、完了。