現在の日/月/年を抽出するためのバッチファイル構文の簡単な内訳が見つかりません。バッチファイルの日/月/年の構文は?
ディレクトリ名として使用する変数を宣言するための構文は次のとおりです。
set folder=%date:~10,4%%date:~7,2%%date:~4,2%
チルダが何を意味するのか誰かが軽い(リンクを投稿する)ことができますか?私は直感からそれを完全に解読しているようには見えません。
現在の日/月/年を抽出するためのバッチファイル構文の簡単な内訳が見つかりません。バッチファイルの日/月/年の構文は?
ディレクトリ名として使用する変数を宣言するための構文は次のとおりです。
set folder=%date:~10,4%%date:~7,2%%date:~4,2%
チルダが何を意味するのか誰かが軽い(リンクを投稿する)ことができますか?私は直感からそれを完全に解読しているようには見えません。
二重パーセントは絶対に何も意味しません。チルダはあなたに部分文字列を与え
echo %firstname%%lastname%
\_________/\________/
Two separate expansions.
:それは単に、例えば2つの変数の展開サイド・バイ・サイドを持っていることの結果です。あなたのケースでは、%date:~10,4%
は、date
環境変数のオフセット10で4文字を返します(オフセットは0から始まるThu 29/12/2011
である可能性が高いため、この場合の年です)。
あなたは、Windowsのコマンドpronptでset /?
を入力した場合、それは文字列の末尾から抽出するために、負のオフセットを使用しての気の利いたトリックなど、あなたのためのすべてのオプションを、説明します。
ただし、環境変数の形式がdate
のロケールによって異なりますので、この単純な文字列の抽出は、すべての国際版のWindows(このビットは2,3年前)で動作しない可能性があります。
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Dayˆ,Hourˆ,Minuteˆ,Monthˆ,Secondˆ,Year /Format:table') DO (
IF NOT "%%~F"=="" (
SET /A SortDate = 10000 * %%F + 100 * %%D + %%A
SET /A SortTime = 10000 * %%B + 100 * %%C + %%E
SET SortTime=0000000!SortTime!
SET SortTime=!SortTime:~-6!
)
)
〜と%%は文字列を分割しています(コマンドにdateと入力すると、完全な文字列が表示されます)。
%日付:〜10,4%は、10番目の文字から次の4文字を取得することを意味します。
また、異なる地域設定を使用している異なるPCについては、文字列内の文字の順序が変更されるので注意してください。
それに私を打つ@paxdiablo:
より良い解決策は、完全を期すためにここにコピーなどRob van der Woude's excellent scripting pages上として日付コンポーネントを、取得するためにWMIを使用することです。ここにはたくさんの例があるlink to a site that explains how it worksがあります。
この投稿を見ることができます、素晴らしい例があります:http://stackoverflow.com/questions/1192476/windows-batch-script-format-date-and-time –
google "windowsバッチファイルの構文" –
@Fredrikあなたがgoogleの "windowsバッチファイルの構文" :-) – paxdiablo