私は2つの(仮想)マシンで作業しています:
どちらの場合も、短い日付形式は同じです:_dd.MM.yyyy
_
両方で、DATE
コマンドに基づいて同じバッチファイルを実行しています。
DATE
コマンドの結果の結果に関連して、結果に違いがあります。
The current date is: st 22.03.2017
_The current date is: 22.03.2017
_ご覧のとおり、違いは今日の名前の存在によるものです(st
はチェコ語のWednesday
の略語です)。
Windows 10システムがマスターなので、私の質問:Windows-7システムを変更して、その日の名前の最初の2文字を含めるにはどうすればよいですか?
テストとして、私はすでに短い日付形式で次のことを試しました。
_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
なし)なんて混乱なのでしょうが、私はこの問題の解決策を見つけたと思います。
重要な点は次のとおりです。Windows10では、単純な日付形式(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ではまだチェックしていませんが、これでうまくいくと思います。
Windows 7では、ddd
を使用して、2文字ではなく3文字の同様の形式にする必要があります。
したがって、ddd dd.MM.yyyyを使用できます。これがサポートされている形式です。
2文字に到達する方法は、バッチファイルで1文字を削除することです。