2016-05-03 17 views
0

いくつかの条件に基づいて、名前フォーマットxyz_yyyyddmmhhmmss(タイムスタンプを追加)のトークンファイルを作成するバッチファイルがあります。問題は、トークンファイルが0:00から9:59まで作成された場合、ファイル名の時間部分は5桁で、それ以外の場合は6桁です。それは6桁のままである必要があります。タイムスタンプ付きのファイルを作成するバッチファイル

for /f "tokens=1 delims=/ " %%j in ("%date%") do set d1=%%j 
    for /f "tokens=2 delims=/ " %%j in ("%date%") do set d2=%%j 
    for /f "tokens=3 delims=/ " %%j in ("%date%") do set d3=%%j 
    for /f "tokens=4 delims=/ " %%j in ("%date%") do set d4=%%j 
    for /f "tokens=1 delims=: " %%j in ("%time%") do set t1=%%j 
    for /f "tokens=2 delims=: " %%j in ("%time%") do set t2=%%j 
    for /f "tokens=3 delims=:. " %%j in ("%time%") do set t3=%%j 


    if exist %1xyz_*.tkn (del %1xyz_*.tkn 
    dir %1*.txt>%1xyz_%d4%%d2%%d3%%t1%%t2%%t3%.tkn) 
    if not exist %xyz_*.tkn (dir %1*.txt>%1xyz_%d4%%d2%%d3%%t1%%t2%%t3%.tkn) 

入力してください。

ありがとうございます!

+0

%%私が( "%日付%は、%時間%")は "D1 = %% I" に設定します"d2 = %% J"をセットし、 "d3 = %% K"をセットし、 "d4 = %% L"をセットし、 "t1 = %% M"をセット& "t2 = %% N" = %% O "' ';それ以外の場合、深夜に非常に近いコードを実行し、 '%date%' /% 'time%'を複数回読むと、予期しない結果が生じる可能性があります。 '%date%'と '%time%'はあなたのロケール設定に応じた形式で日付と時刻を返します。 – aschipfl

+0

可能な限り、あなたはローカルの設定とは無関係の解決策を選ぶべきです://stackoverflow.com/a/18024049/2152082) – Stephan

答えて

0

長い間ずっと以前、私はこれのどこかに根拠を見つけて(それほど確かではない)、いくつかの修正を加え、それ以来書き込んだほぼすべてのバッチファイルにカットアンドペーストしました。私はそれがどのように機能しているか完全に理解しているかどうかはわかりませんが、そうしています。あまりにも多くの手間をかけることなく、あなたのフォーマットにそれを適応させることができるはずです。

REM Creates a string in the form of YYYYMMDD-hhmm, with no embedded spaces 
SET hh=%time:~0,2% 
IF "%time:~0,1%"==" " SET hh=0%hh:~1,1% 
SET DateString=%date:~10,4%%date:~4,2%%date:~7,2%-%hh%%time:~3,2% 
あなたが/ F "トークン= 1-7 delims = /。:、" のために `使うべき
関連する問題