2016-12-07 10 views
0

特定の方法でフォーマットされたTIMEを使用するフォルダを作成したいとします。フォルダー名に:を使用することはできないので、フォーマットをhh.mm.ssにしたいです。時間形式と先頭/末尾のゼロ/スペース

set CurTime=%time:~0,2%.%time:~3,2%.%time:~6,2%を使用すると、午前10時より前に先行スペースがあり、末尾に5つのスペースが含まれています(その理由はわかりません)。スペースを削除するには、set CurTime=%CurTime: =%行を追加しますが、時刻が午前10時より前の場合は先頭にゼロを追加します。

どうすればいいですか?明確化のため

編集: は、私は私がそれを望むようにフォーマットされた時間を持っているが、私はHHの部分は、これはHow to get current datetime on Windows command line, in a suitable format for using in a filename?の重複問題ではない10未満であれば0とリードするスペースを交換したいです。

+2

'Echo =%TIME%'の出力と、コマンド実行時の期待出力と実際の出力を提供するのに役立ちます。 – Compo

+0

コマンド 'set" CurTime =%TIME :: =。% "'は ':'を '.'で置き換えます... – aschipfl

+0

' echo%time% 'は結果をhh: mm:ss.dd hhには先頭のスペースが入り、ddにはミリ秒が入ります。私はミリ秒を望んでいません。私は最終結果がスペースの代わりに先行ゼロを持つことを確認したいと思います。 –

答えて

1

あなたはこの1のように行うことができるようにすることができます==>Windows batch file redirect output to logfile with date/time

これを読んでいる場合:

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a 
set datestamp=%dt:~0,8% 
set timestamp=%dt:~8,6% 
set YYYY=%dt:~0,4% 
set MM=%dt:~4,2% 
set DD=%dt:~6,2% 
set HH=%dt:~8,2% 
set Min=%dt:~10,2% 
set Sec=%dt:~12,2% 
set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec% 
echo stamp: "%stamp%" 
pause 
echo datestamp: "%datestamp%" 
pause 
echo timestamp: "%timestamp%" 
pause 
set MyVar=%HH%.%Min%.%Sec% 
echo My desired Variable in this format hh.mm.ss to use is : %MyVar% 
pause 
mkdir "c:\%MyVar%" 
pause 
+0

個々のHH、Min、およびSecコンポーネントに時間を割いて作業しました。 'set HH =%HH:= 0%'行を追加することで、時間内にスペースがあれば0に置き換えられることを確認できました。ありがとう! –

0

あなたの目標を達成するための多くの方法があります。

ここでクレイジーテストされていない一つだ:

@ECHO OFF 
SET "CurTime=" 
FOR /F "TOKENS=2-4 DELIMS=: " %%A IN ('ROBOCOPY/NJH /L "\|" NULL' 
) DO IF NOT DEFINED CurTime SET "CurTime=%%A.%%B.%%C" 
ECHO(%CurTime% 
TIMEOUT -1 
0
set "mytime=%time:~0,-8%" 
set "mytime=%mytime: =0%" 
set "mytime=%mytime::=.%" 
echo "%mytime%" 

あなたが望む結果を表示する必要があります。最初の行は、最後の8文字をtime(5スペース+ .ddである必要があります)から削除し、残りの2つは不要な文字の置換を行います。

なぜなら、末尾のスペースが5つある理由は、「a.m.簡単な方法は、不要な部品をスペースで置き換えるだけです。

関連する問題