5

XML ファイルに対して XSLT 変換を実行し、2 番目の XML ファイルを書き出すバッチ ファイルを実行しようとしています。

この XML ファイル名は、バッチ ファイルの次の行によって決定されます。

 ICS_%DATE:~-4%_%DATE:~4,2%_%DATE:~7,2%_%TIME:~0,2%_%TIME:~3,2%_DATA.xml

時刻の先頭にスペースがある場合 (つまり、午前 10:00 より前の任意の時刻)、変数%TIME:~3,2%は先頭にスペースがある結果を返すため、ファイル名が切り捨てられます。結果ファイルが空です。

午前 10 時以降にバッチを実行すると、すべて正常に動作します。%TIME:~3,2%午前 10 時前に機能する ような値を生成するにはどうすればよいですか?

4

8 に答える 8

16

これにより、名前の問題のスペースが解決され、リストで正しくソートされるようにゼロに置き換えられます。

set name=ICS_%DATE:~-4%_%DATE:~4,2%_%DATE:~7,2%_%TIME:~0,2%_%TIME:~3,2%_DATA.xml
set name=%name: =0%
于 2013-05-06T22:46:20.883 に答える
2

(これは古い質問ですが、この回答は他の人の助けになる可能性があります。)

を使用%time: =%すると、時間変数のスペースが取り除かれます。例:

C:\>echo %time%
 04:00:00,00

C:\>echo %time: =%
04:00:00,00

このメソッドを使用して時間変数を別の変数に保存し、その変数から作業することができます。

set "tim2=%time: =%"
于 2015-03-15T07:20:03.973 に答える
1

次のように時間の値に変数を設定すると、問題が解決します。 FOR /F "tokens=* delims= " %%a IN ("%TIME:~0,2%") DO SET hour=%%a

于 2013-05-06T16:16:55.647 に答える
0

REM この .bat スクリプトは、スペースの代わりにゼロを含むパラメーター timetext を提供します

@echo off

set timetext=%time:~0,2%%time:~3,2%
echo TIME BEFORE WITH SPACE %timetext%

set digit1=%time:~0,1%

if "%digit1%"==" " set digit1=0

set timetext=%digit1%%time:~1,1%%time:~3,2%
echo TIME AFTER WITH ZERO.. %timetext%

pause
于 2014-02-28T09:23:54.210 に答える