2009-03-30 6 views
0

環境変数の中間スペースを取り除くにはどうすればよいですか?環境変数の中間スペースを取り除くにはどうすればいいですか

あるディスクの空きディスク容量を取得する次のforループフラグメントがあるとします。

for /f "tokens=3" %%i in ('dir ^| find "Dir(s)"') do set size=%%i 

は、私は次のように区切り文字を取り除くしたいと思い、この

C:\>set size=129,028,096 

のようなものをもたらすであろう。

for /f "delims=," %%i in ('echo %size%') do set size=%%i 

と私はネイティブツールと無ミッドスペースや区切り文字でそれを得ることができますどのようにこの

set size=129 028 096 

のようなものを得ましたか?

答えて

1

あなたは何もすべてのスペースを置き換えるれるその後

set size=%size: =% 

を使用することができます。

しかし、あなたも行うことができコンマ:)

しかし、(a)は区切りの変更は、それは私のためにドットではなく、コンマだことを覚えておくと。 OS言語や地域の設定によって異なる場合があります。そして、(b)cmdは符号付き32ビット演算(set /aを使用)に限られているため、後でその値で数学を行うことはできません。

sizeを最後の桁のグループに設定すると、2番目のfor文が正しく機能しません。それは回避することができますが、私はむしろカンマ/ドットで直接交換を使用することをお勧めする:thatsの優れたたくさん

set size=%size:,=% 
set size=%size:.=% 
+0

おかげで私は1つのステップ –

+0

でそれを行うことができます未満の二行はおそらく –

+0

非常にあなたがいない感謝。しかしそれは十分に短いはずです。トークン化を使用して各トークンを連結しようとすることはできますが、HDDのサイズによってはトークンが多かれ少なかれ...確かに理想的ではありません。私はあなたの最初の行に行き、すべてのカンマを置き換えます。 – Joey

関連する問題