web-dev-qa-db-ja.com

YYYYMMDD日付をフォルダー名として使用して、複数のディレクトリにフォルダーを作成するスクリプト

毎朝仕事で、さまざまな部門のネットワーク全体のさまざまなディレクトリに複数のファイルフォルダを作成する必要があります(ファイルフォルダ名としてYYYYMMDD日付形式を使用)。これは本当に苦痛で時間の浪費であり、プロセスを自動化したいと思います。だから私の質問は:

現在のシステム日付をYYYYMMDD形式で使用し、各フォルダーの名前がYYYYMMDD形式の日付で、異なるネットワークディレクトリに複数のフォルダーを作成するスクリプトを作成する方法を知っている人はいますか?

よろしくお願いします。

6
user10765

次のようなバッチファイルを作成します。

@echo off
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd=%%k%%j%%i
echo Date: %yyyymmdd%

mkdir \\server1\share1\subdir1\%yyyymmdd%
mkdir \\server1\share2\subdir2\%yyyymmdd%
mkdir \\server2\share3\subdir3\%yyyymmdd%
...

警告:日付の形式(yyyymmdd = %% k %% j %% i)は地域の設定によって異なります。フランス語の日付形式(dd/mm/yyyy)を使用しているため、「%% k %% j %% i」を使用する必要があります。形式(%% i =日、%% j =月、%% j =年)。

地域の設定がUSスタイル(mm/dd/yyyy)に設定されている場合は、「%% k %% i %% j」( %% i =月、%% j =日、%% j =年)。


時間も含めたい場合は、次を使用します。

@echo off
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd=%%k%%j%%i
echo Date: %yyyymmdd%
for /F "tokens=1-3 delims=: " %%i in ('echo %time%') do set hhmmss=%%i%%j%%k
echo Time: %hhmmss%

mkdir \\server1\share1\subdir1\%yyyymmdd%%hhmmss%

日付は変数%yyyymmdd%に格納され、時刻は%hhmmss%に格納されます。日付については上記と同じコメントですが、時間には適用されません。

日付と時刻の間に区切り文字を使用できます。たとえば、%yyyymmdd%_%hhmmss%です。

9
Snark

次のオプションを試してください。

set name=%date%
set name2=%name:~6,4%-%name:~3,2%-%name:~0,2%
set tm=%time%
set name3=%tm:~0,2%-%tm:~3,2%
set finname=%name2%_%name3%
mkdir \\Server\Share1\Subfolder1\%finname%
0
Kasun

もう1つの、醜いがはるかに柔軟な方法は、作成する必要のあるディレクトリごとに個別のバッチファイルを生成することです。これにより、(a)ディレクトリが作成され、(b)実行する必要のある次のバッチファイルの名前が以前に選択されたものに変更されます。一般名。その一般名でバッチファイルを毎日実行するだけです

0
user7963