[前の記事]« 6ヶ月以上更新がないファイルを削除したい
[次の記事]環境変数が連続するn個のスペースであることを検出するには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

set /aの基本的な使い方

1454.
setについて
2006年10月16日(月) 21時26分
M下
初めて書き込みをさせて頂きます。

環境:
windows2000

質問:
下記のように処理を組んでいるのですが、うまく出来ません。

set test=C:\work\test.txt

type %test%
2

echo %test%
C:\work\test.txt

set /a %test% + 1
1

という出力結果になってしまいます。
(私としては3にしたいのですが…)
まだ知識が浅く、過去の書き込み等見たのですが分かりませんでした。
すいませんが宜しくお願いします。
1455.
Re:setについて
2006年10月17日(火) 10時42分
ラシャン
変数を値に置き換えて考えてみると解り易いと思いますよ~

>set test=C:\work\test.txt
「test」という変数の中には「C:\work\test.txt」という
ファイルのパスがセットされているので

>type %test%
>2
「type C:\work\test.txt」というコマンドが実行されるので
C:\work\test.txtの中身の「2」が表示されます。

>echo %test%
>C:\work\test.txt
ここで重要なのはtypeとechoを実行しても
typeはファイルの内容を表示するコマンドで
echoはメッセージを表示するコマンドなので
「test」という変数にセットされた値は変化しないということ

>set /a %test% + 1
>1
このコマンドだと「set /a C:\work\test.txt + 1」という
コマンドが実行される為、「1」という結果が返ってきているわけです。

目的の処理を行なうには「test」という変数に「2」が
セットされていないといけません。
以下のようなコマンドで「c:\work\test.txt」の内容である
「2」を「test」という変数にセットすることが出来ます。

for /f %a in (c:\work\test.txt) do set test=%a

set /a %test% + 1

BATファイルで実行する場合には%aを%%aに変えて

for /f %%a in (c:\work\test.txt) do set test=%%a
set /a %test% + 1

という風に実行すると目的の処理が行なえます。
また、出力結果は「3」になりますが、実際には
「test」という変数には「2」がセットされたままなので
「test」という変数の値を「3」にしたい場合には

set /a test=%test% + 1

という風にする必要があります。

1456.
Re:setについて
2006年10月17日(火) 12時25分
otn
補足です。

>BATファイルで実行する場合には%aを%%aに変えて
>
>for /f %%a in (c:\work\test.txt) do set test=%%a
>set /a %test% + 1

set /a で演算結果が表示されるのはコマンドプロンプトから直接実行した場合だけで、BATファイル中にset /a を書いても結果は表示されません。

set /a test+=1
echo %test%

のようにechoする必要があります。
1458.
Re:setについて
2006年10月17日(火) 13時10分
scriptwriter
set /p test=<C:\work\test.txt
set /a test=test+1
または
set /a test+=1
echo %test%

1460.
Re:setについて
2006年10月17日(火) 14時06分
M下
ラシャンさん otnさん
for文で変数にセットするのですね。
その後、echoで表示しましたら、うまくいきました。
ありがとうございました。

scriptwriterさん
テストを行ってみましたが、同じ(望んでいた)結果が出力されました。
勉強不足で仕組みがまだ分からないので、ラシャンさんの方法で作成させて頂く事になりました。申し訳ありません。
このたびは、大変勉強になりました。ありがとうございました。
 
 

1454.setについて M下 06/10/16(月) 21:26
1455.Re:setについて ラシャン 06/10/17(火) 10:42
1456.Re:setについて otn 06/10/17(火) 12:25
1458.Re:setについて scriptwriter 06/10/17(火) 13:10
1460.Re:setについて M下 06/10/17(火) 14:06
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年10月16日 11:49に投稿されたエントリーのページです。

ひとつ前の投稿は「6ヶ月以上更新がないファイルを削除したい」です。

次の投稿は「環境変数が連続するn個のスペースであることを検出するには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート