2009-08-21 11 views
1

私はバッチファイル内で作業しています.10より小さい場合は先頭の0で1桁の数字を埋め込む必要があります。彼らは月と日です、私は私が対処しているファイル構造に一致するようにパッドする必要があります。私は、次の形式 "7/16/2009"に戻る日付を返すためにvbscriptを使用しています。 "07/16/2009"のように見えるようにする必要があり、最も重要なのは別々のEVで各アイテムを必要とすることです。数値の月と日の先頭に0が付いている必要があります

VBスクリプト:

WScript.Echo DateAdd("d", Date, -36) 

バッチ:

for /F "tokens=1-3 delims=/" %%x in ('cscript //nologo get36thday.vbs') do (
    SET YYYY=%%z 
    SET MM=%%x 
    SET DD=%%y) 

答えて

3

バッチスクリプトのために、私は正確な構文が、バッチスクリプトを知りません指定された文字数をから返すことができます文字列の側に

したがって、「0」文字の後に月を追加し、最も右の2桁を使用します。これはおそらく、これに似たものになります:

SET MM=0%%x 
SET MM=%MM:~-2% 

1は01
5は05
10滞在

+0

+1。ニースのトリック。私はサブルーチンと 'if'ステートメントを使用していました。しかし、これははるかにエレガントです。 – Joey

+0

素晴らしい、非常に賢い。 –

8

のVBScript:

dteOldDate = Now() 
strNewDate = Right("00" & Month(dteOldDate), 2) & "/" & Right("00" & Day(dteOldDate), 2) & "/" & Year(dteOldDate) 
+0

に置き換えられます:バッチファイルは、スクリプトのからそれを読み取るため、 'Wscript.EchoステートメントstrNewDate'を出力。 – Helen

0

ここでパディング文字列の私の方法は10になりなります。

この例では、MYVARは5つのゼロにパディングされます。他の回答Athough

SET MYVAR=00000%MYVAR% 
SET MYVAR=%MYVAR:~-5% 
0

あなたは、単純な文字列置換を行います日付と時間のために、フロントアップゼロでパッドにしたい文字列の長さを知らない場合に便利です。要するに

set hour=!TIME:~0,2! 
set hour=!hour: =0! 

スペースがある場合、それはあなたがまた、日付エコーする必要が0

関連する問題