PowerShellの動作がWindows 10で若干変更

Windows 8.1 から 10 にアップグレードして約2週間、ほとんどそのままの環境で使えています。支障が出たのが自作のファイル バックアップ スクリプトで、PowerShell から robocopy.exe を呼び出すときにエラーになりました。Windows 8.1 の PowerShell までは、バッドノウハウの一種なのでしょうが経験的に、外部プログラムに引数を渡すときに空白区切りの文字列にすれば動いていたのでした。

古いスクリプトの引数の渡し方(文字列による独自手法)は、こんな感じ:

$prms = """C:\org\documents""" + " " + """D:\bak\documents""" + " " + "/S" + " " + "/XD ""cache"" ""cache2""";
cmd /c robocopy $prms;

Windows 10 の PowerShell で動くように書きなおした現在のスクリプトは、こんな感じ:

$prms = ( """C:\org\documents""", """D:\bak\documents""", "/S", "/XD", """cache""", """cache2""" );
robocopy $prms;

配列に外部プログラムへの引数を入れて、そのまま渡しています。新しい方も、経験的に動くという手法ですが、多少は正統的な感じがしませんか?

ところで、PowerShell のバージョンですが、Windows 8.1 では、

PS C:\> $PSVersionTable

Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34209
BuildVersion 6.3.9600.17400
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2

Windows 10 では、

PS C:> $PSVersionTable

Name Value
---- -----
PSVersion 5.0.10240.16384
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.42000
BuildVersion 10.0.10240.16384
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3

となっていました。つまり、Windows 8.1 は PowerShell 4.0 で、Windows 10 は PowerShell 5.0 ということになります。スクリプトが動かなくなったということは、どこかが、微妙に異なっているのですね。

(2015/9/1)

伊豆2015

外浦海岸(2015/7/25)

今年も友人達と下田の外浦海岸に行ってきました。(2015/7/24~26)

7/24(金)午後に伊豆急下田駅に到着。たまたま、リゾート21 でした。

伊豆急(下田駅) 2015/7/24 下田駅のバス停

宿は、今年も伊鈴荘。(外観を撮り忘れました。下の写真一番左に白く見えるところが伊鈴荘)

外浦海岸 (2015/7/25)

翌7/25(土)は一日中、泳いだり、砂で遊んだり、寝転んだり。波がなく、遠浅で、水がきれいなプールのような海水浴場です。

砂の王蟲? 2015/7/25

日曜日の午前、ペンションOHBANだったお宅に顔を出したら、新たに「ならいの風」という宿を始めたとのこと。ずっと前から、この立派な建物はなんだろうと思っていたところでした。泳いでいると、浜の真ん中の丘の上に目に入る建物です。

ならいの風(正面) ならいの風(海側 遠景)

帰りもリゾート21で、先頭車に乗れました。

伊豆急(リゾート21 熱海行き)

cf. 以前作った宿のリスト:海の日は伊豆2011 宿決定 | マキシマ文庫

(2015/7/29)

鴻巣のポピー、麦なでしこ

日本一の川幅を誇る鴻巣の荒川の広大な河川敷に、今年もポピーと麦なでしこが咲いています。
cf. こうのす花まつり – 鴻巣市公式サイト(開花状況あり)

シャーレーポピー (雛芥子)

鴻巣のポピー 2015/5/17   鴻巣のポピー 2015/5/17   鴻巣のポピー 2015/5/17   シャーレーポピー 2015/5/17

なお、ポピーは「摘み取り禁止。5/23~31 有料にて摘み取り可(指定場所) 100円」の看板あり。

カリフォルニアポピー (花菱草)

カリフォルニアポピー 2015/5/17   カリフォルニアポピー 2015/5/17

麦なでしこ

麦なでしこ 2015/5/17   麦なでしこ 2015/5/17

なお、麦なでしこは「摘み取り禁止。5/24日 有料にて摘み取り可(指定場所) 100円」の看板あり。ポピーの場所と隣接していますが、日付が異なります。

(2015/5/17)

スター・ウォーズ VII 特報2 のセリフは何と言っているのか

テレビで Star Wars VII の宣伝:

の日本語版を見ていたら、ルーク・スカイウォーカーの台詞とおぼしきところがありました。しかし、日本語字幕を見ていると、英語音声がうまく聞き取れません。言っていることが違うか、相当な意訳のように思えたので、何度も繰り返して聞き取ってみました。たぶん、ルークはこう言っています。

The Force is strong in my family.
My father has it.
I have it.
My sister has it.
You have that power too.

字幕では、

フォースは 私の一族と共に
父がそうであり
私も
妹も
そして お前にも…

映画やドラマの日本語字幕はいつもそうですが、枝葉を落として要点だけになっていますね。

ちなみに、そのあと、ハン・ソロが

Chewie,
we are home.

と言っています。字幕では、

チューバッカ
帰って来たぞ

どこへ行っていたんだ?

それはともかく、ルーク(?)が何と言っているのか確かめようと、英文で載っているページを探していたら、こんな記事がありました。

台詞が載っていますが、私の聞き取りは合っていたようですね。5つの疑問ということですが、そのひとつ、ダース・ベイダーは死んでいるのに、なぜ現在形で、My father has it と言っているのかと疑問が呈されています。指摘されてみれば、確かにその通り。もっとも、映画ではアナキン・スカイウォーカーもオビ・ワン・ケノービも死んでいるのに、フォースの世界で霊的な存在が残っているように描写されているので問題ないのかもしれません。

父も、私も、妹も、フォースが強いんだというこの台詞、もともとエピソードVI 「ジェダイの復讐(帰還)」で、ルークがレイアに告げる言葉でした(cf. Star Wars Episode VI: Return of the Jedi – Wikiquote)。このとき、you はレイア姫のことでした。今回、エピソードVII の you は一体誰という設定になるのでしょう? ルークの子どもか、レイアの子どもか、だとするとハン・ソロの子にもなるのか、気になります。

(2015/5/11)