XP以降(?)ではWSHスクリプトをバッチファイルに混在して記載できるため、JScript側で日時を取得して処理し、それをシェルスクリプトに返してやることで、ロケールに依存しない日時の文字列を得ることができるようです。
では、この仕組みがどのように機能するか、というところなのですが、とても面白くて、こちらの記事に解説されています。上手い仕組みがあるものですね。DATE/TIMEコマンドやDATE/TIME環境変数の形式は地域に依存します。
「地域と言語のオプション」の影響を受けないようにするには、DATE/TIMEコマンドやDATE/TIME環境変数を使わず、WSHスクリプトを使うのが一番です。
@if(0)==(0) ECHO OFF FOR /F %%0 IN ('CScript.exe //NoLogo //E:JScript "%~f0"') DO SET yyyymmddhhmmss=%%0 ECHO %yyyymmddhhmmss% GOTO :EOF @end var d=new Date(); WScript.Echo(d.getFullYear()*10000000000+(d.getMonth()+1)*100000000+d.getDate()*1000000+d.getHours()*10000+d.getMinutes()*100+d.getSeconds());http://scripting.cocolog-nifty.com/blog/2007/01/datetimedatetim_061c.html
BATとWSHのコードを1ファイルに混在させるためのshebang記法(複雑なバッチを1ファイルで実現)
http://computer-technology.hateblo.jp/entry/20131025/p1
No comments :
Post a Comment