
私は 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 つの場所で使用されているようです。
- コマンドラインコマンドで作業しているときに(そこでは、さらなる処理のために(それが何であれ)
DATE
のような形式が必要です)xx dd.MM.yyyy
xx
- フォロー中
echo
:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI
タイムスタンプとファイル名を表示するというアイデアです。次のようになります:
22.03.2016 13:50 <filename>
(なしxx
)
答え1
Windows 7 では、ddd
2 文字ではなく 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ではまだ確認していませんが、これでうまくいくと思います。