2017-04-23 10 views
0

私はこのBATに日付のあるフォルダを作成しようとしています。私は5種類の変種を試しましたが、それらのすべてが余分なフォルダを作成しました。これまでに使った中で最高のものがバットファイルに日付を含むフォルダを作成すると、その日は追加されませんか?

です。

「D:\共有\バックアップ\データ-04-17」私が使用している何これは、このディレクトリを作成し

REM Create a folder using the current date. If such a folder already 

exists, append a number to make it unique. 
@ECHO OFF 
for /F "tokens=2-5 delims=/ " %%i in ('date /t') do (
set Day=%%j 
set Month=%%i 
set Year=%%k 
) 

set Path=D:\share\Backup\Data %Year%-%Month%-%Day% 
set /a inx=2 

:LOOP 
IF NOT EXIST "%Path%" GOTO CREATE 
set Path=%~1\%Year%-%Month%-%Day% (%inx%) 
set /a inx+=1 
if %inx% gtr 9 goto :END REM Eh, giving up. 
goto LOOP 
:END 

:CREATE 
md "%Path%" 
:END 

(未私のコードを、別のスレッドを、それを降りた)あなたが見ることができるようにはしていません日を適用する。誰かが私にこれを修正して、日がうまくいくよう助けてくれる?

EDIT:例えば日付は2017年4月23日または23-04-17

EDIT 2でなければなりません:提案されているようトークンを変更し、作業BATは下記を参照してください

REM Create a folder using the current date. If such a folder already exists, append a number to make it unique. 
@ECHO OFF 
for /F "tokens=1-5 delims=/ " %%i in ('date /t') do (
set Day=%%i 
set Month=%%j 
set Year=%%k 
) 

set DataPath=D:\share\Backup\Data %day%-%month%-%Year% 
set /a inx=1 

:LOOP 
IF NOT EXIST "%DataPath%" GOTO CREATE 
set DataPath=D:\share\Backup\Data %day%-%month%-%Year% (%inx%) 
set /a inx+=1 
if %inx% gtr 9 goto :END REM Eh, giving up. 
goto LOOP 
:END 

:CREATE 
md "%DataPath%" 
:END 

答えて

1

ありません、sir。 「は、作成日付があなたの日付フォーマットが何であるかを知らずidunno

-month- 欠け、指導が困難であるあるとして不足している TIS。おそらくあなたのtokensを変更すると役に立ちます。現在、トークン2は%%i,3~%%j,4~%%kに割り当てられています。どのような要素が%%i .. %%mに割り当てられるのかを確認します。echo %%i+%%j+%%k+%%l+%%mを使用すると、必要な部分を選択できます。

pathはlogcalですが、pathは現在のディレクトリに見つからない実行可能ファイルが見つかる場所を示す予約済みの変数です。

関連する問題