mkdirで作成されたフォルダ名に日付を追加する

mkdirで作成されたフォルダ名に日付を追加する

実行時にいくつかのファイルを生成するスクリプトがあります。スクリプトを修正し、上部に次の2行を追加しました。

mkdir ABC
cd ABC

このように形成された新しいファイルはこのディレクトリにありますABC。私の質問は、3月26日にスクリプトを実行している場合、このディレクトリ名に現在の日付を追加する方法ですABCABC_mar_26日付形式の特定の標準もありませんABC_03_26)。

答え1

取得するにはABC_03_26:

mkdir "ABC_$(date +'%m_%d')"

月の名前が必要な場合:

mkdir "ABC_$(LC_ALL=C date +'%b_%d')"

%bそのロケールの略月名が提供されますが、最初の文字は大文字で表示されます。

これにより、次のことzshができます。

mkdir "ABC_${(L):-$(LC_ALL=C date +'%b_%d')}"

または使用急速な拡張:

$ LC_ALL=C; print -rl -- ${(L)${(%):-%D{%b_%d}}}
mar_26

答え2

以下は、Windows / cygwinユーザーが興味を持っている可能性がある問題の具体的なサンプルアプリケーションです。私は.bat現在の日付と時刻の名前の付いたサブフォルダを作成してファイルを自動的にバックアップするバッチスクリプトを作成しました。まず、環境から変数を取得してからフォーマットし、%time%最後に0文字列を新しい変数に連結して%datetimef%次に渡しますmkdir

set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%

set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%

set datetimef=%year%%month%%day%-%hour%%min%%secs%

mkdir version%datetimef%
cp *.pdf version%datetimef%/

関連情報