1

Windowsのコマンドラインで入力するDateと、日付値を入力するように求められます。
しかし、日付を記憶されている(入力しない)値に変更する必要がある場合はどうなりますか?

@echo off
set todaysdate=%date%
date 11/11/2012
date %todaysdate%

最後の行はこのエラーを示しています。The system cannot accept the date entered.次に、日付を入力する必要があります。
では、何が問題なのですか?変数の型を変更する必要がありますか?それは可能ですか、そしてどのように?


アップデート:

問題:dbenhamのおかげで、問題が次の原因になっていることがわかりDate %todaysdate%ましSet "Todaysdate=%DATE:/=-%"た:曜日+日付。

例:Date %todaysdate%およびSet "Todaysdate=%DATE:/=-%"(最初のスクリプト行)の値は、2012年11月24日土曜日になります。したがって、日付(最後の行)にこの値を2012年11月24日土曜日にするように要求すると、日付は曜日を含むこの値を受け入れないため、失敗します。

解決策:私は今2つの解決策を考えていますが、それらがcmdに適用できるかどうかはわかりません。
最初の解決策は、最初のスクリプト行の設定値に曜日(Sat、Sun ...)が含まれているかどうかをテストし、曜日をトリミングすることです。
2番目の解決策は、1行目の変数のタイプを変更することです。したがって、変数のタイプに関係なく、曜日のない単純な日付(日、月...)に変更します。

4

3 に答える 3

2

設定するときはtodaysdate、最後の10文字のみを使用してください(mm / dd/yyyyまたはdd/mm / yyyyはロケールによって異なります)。これは機能するはずです:

@echo off
set todaysdate=%date:~-10%
date 11/11/2012
date %todaysdate%
于 2012-11-24T16:19:26.993 に答える
0

よくわかりませんが、推測するのは難しいでしょう

set todaysdate=%date%
set date=%todaysdate%
于 2012-11-22T18:39:53.180 に答える
0

コマンド出力リダイレクトを使用します。

@Echo OFF

Set "Todaysdate=%DATE:/=-%"
<NUL Echo %todaysdate%|DATE 


REM A Test
Set "randomDate=22-22-2012"
Echo %randomDate%
Echo %randomDate%|DATE

Pause&Exit
于 2012-11-22T22:29:00.910 に答える