Windows 10 のバッチファイルは DATE コマンドに基づいています。下位バージョンの Windows での使用方法

Windows 10 のバッチファイルは DATE コマンドに基づいています。下位バージョンの Windows での使用方法

私は 2 つの (仮想) マシンで作業しています:

  • まずWindows 10マシン
  • 2番目はWindows 7マシンです

どちらでも、短い日付形式は同じです。dd.MM.yyyy
どちらでも、コマンドに基づいて同じバッチファイルを実行していますDATE

コマンド結果の結果に関連して、結果に違いがありますDATE

  • Windows 10の場合:The current date is: st 22.03.2017
  • Windows 7の場合:The current date is: 22.03.2017

ご覧のとおり、この違いは、今日の (stはチェコ語の の略語ですWednesday) という名前の存在によるものです。

Windows 10 システムがマスターなので、質問です。曜日の名前の最初の 2 文字を含めるように Windows 7 システムを変更するにはどうすればよいでしょうか。

テストとして、短い日付形式で次のことをすでに試しました。

dd dd.MM.yyyy   // this is better, the length of the format is good,
                   but it does not start with the initials of the day's name.
dddd dd.MM.yyyy // this starts with the day's name, but completely, 
                   and I only want the first two letters.

その間、私は問題をさらに調べてみました。日付形式は次の 2 つの場所で使用されているようです。

  1. コマンドラインコマンドで作業しているときに(そこでは、さらなる処理のために(それが何であれ)DATEのような形式が必要です)
    xx dd.MM.yyyyxx
  2. フォロー中echo:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI タイムスタンプとファイル名を表示するというアイデアです。次のようになります:
    22.03.2016 13:50 <filename>(なしxx)

答え1

Windows 7 では、ddd2 文字ではなく 3 文字の同様の形式を使用する必要があります。

だから、yyyy 年 MM 月 dd 日サポートされている形式です。

2 文字を取得するには、バッチ ファイルを使用して 1 文字を削除します。

答え2

大変な混乱ですが、問題の解決策を見つけたと思います。

ポイントは次のとおりです。Windows 10 では、単純な日付形式 ( などdd.MM.yyyy) であっても、date /Tコマンドラインによってその日の最初の文字が追加されるため、次のようになります。

date /T
st 22.03.2017

そして私の同僚は、それらの「st」文字の存在を考慮してバッチファイルを構築しました。それらのバッチファイルを下位バージョンの Windows で実行すると、前述の問題が発生します。

バッチファイルの先頭に次の行を追加しました:

DATE=xx %DATE%

(非常に子供っぽいとは思いますが)
これでバッチファイルが私の Windows 7 コンピューターで動作するようになりました。
両方のシステムで動作させるには、プラットフォームに次のようなチェックを追加するだけです。

set WINDOWS_10=%ver | findstr /C:"Version 10"%
if "WINDOWS_10"=="" (
  set DATE=xx %DATE%)

Windows 10 PCではまだ確認していませんが、これでうまくいくと思います。

関連情報