2012-03-25 1 views
0

バッチには実際にはintが含まれていないので、set/aで回避する必要があります。ここで私は数値式を評価し、文字列にそれを設定します(バッチ)からのコードセグメントを持っている:set/aを使用したバッチプリント

@echo off 
set test=|set /a 12-10 
pause 

私の問題は、これは実際には「テスト」という文字列を出力することです。後で文字列を変更する必要がある可能性があるため、これはかなり不便です。これの周りに(clsの全体の束の上に)何か方法はありますか?

答えて

1

私は

set /a test=12-10 > NUL 

はあなたが後にしているものであると考えている - あなたのバージョンがまったくtestを設定しません。

C:\temp>type t.cmd 
@echo off 
set /a test=1+5-21 > NUL 
echo Test is: %test% 

C:\temp>t.cmd 
Test is: -15 

あなたもそのように間接的な割り当てを行うことができます。これはあなたにいくつかのアイデアを与えるだろう

C:\temp>type t.cmd 
@echo off 
setlocal 
echo before: %mything% 
set var=mything 
set /a %var%=4+3 
echo after: %mything% 


C:\temp>t.cmd 
before: 
after: 7 
+0

私は私が私の目標の視力を失ったと思います。私は算術演算を実行し、値を文字列に設定しようとしています。任意のヒント? – LastStar007

+0

それをより良く説明してください。意味がありません。あなたが言ったように、バッチファイルにintがないので、私が書いたスニペットの後で、 'test'は文字列' 2'を含んでいます。 "値を文字列に設定する"という意味ではありません。 – Mat

+0

コードの問題は、まだ2が印刷されていることです。算術演算(12-10)を実行しようとしていて、後でバッチファイルで文字列を使用できるように結果を文字列に保存しようとしています。 – LastStar007

1

@echo off 
set test=|set /a 16-10 
ECHO. 
SET /A y=12 - 10 
ECHO.y = '%y%' 
pause>nul 
+0

それは問題ではありません。あなたのバージョンが最初にどのように印刷されるかに注目してください。私はセットの結果を印刷しないようにしようとしています。 – LastStar007

+0

私のサンプルコードからは、印刷したくない部分がある場合は、コードを変更して印刷できないことが明らかです。 nulの使用例とECHOの使用例を示します。他に何が必要ですか? – djangofan

+0

設定された行は依然として印刷されます。別のOverflowerは、 'set/a'の値が何にも設定されていないため、コマンドラインに出力するためだと指摘しました。 – LastStar007

関連する問題