[前の記事]« スクリプトの一括実行について。
[次の記事]Windowsのバージョン判断 »

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

▲カテゴリー「SET, PATH, %環境変数%」索引へ
▲カテゴリー「各種のエラーメッセージと対処」索引へ

エラー(無効な数字です)

534.
エラー(無効な数字です)
2004年06月15日(火) 10時33分
donkey
以下のバッチにて前月を取得したいのですがシステム日付を
8月と9月にするとエラーが発生して欲しい結果が得られません。

【エラー内容】
無効な数字です。数値定数は10進(17桁)、16進(0x11桁)、
または8進(021桁)です。

自分なりに調べてみたのですが、わかりません。
どなたか教えてください。

-- month.bat strat -------------------------------
@echo off

set yyyy=%date:~0,4%
set mm=%date:~5,2%

set /A mm=%mm% - 1

if /I %mm% GTR 0 goto ADJUSTDAY

set /A mm=12
set /A yyyy=%yyyy% - 1

:ADJUSTDAY

if /I %mm% LSS 10 set mm=0%mm%

echo %yyyy%%mm%です。
-- month.bat end ---------------------------------
535.
Re:エラー(無効な数字です)
2004年06月15日(火) 11時11分
じゃく
>以下のバッチにて前月を取得したいのですがシステム日付を
>8月と9月にするとエラーが発生して欲しい結果が得られません。

>【エラー内容】
>無効な数字です。数値定数は10進(17桁)、16進(0x11桁)、
>または8進(021桁)です。

>自分なりに調べてみたのですが、わかりません。
>どなたか教えてください。

>set /A mm=%mm% - 1

set /? によるヘルプの抜粋を記述します。
------------------------------------------------抜粋はじめ
SET コマンドには、2 つの新しいスイッチが追加されています:

    SET /A 式
    SET /P 変数=[プロンプト文字列]

/A スイッチは、等号の右側の文字列が、評価すべき数式であることを
指定します。

(中略)

コマンド スクリプト外でコマンド ラインから SET /A を実行すると、式の
最終的な値が表示されます。割り当て演算子を使うには、割り当て演算子
の左側に環境変数名が必要です。数値は 10 進数ですが、接頭辞として 0x
を付けると 16 進数、0 を付けると 8 進数になります。従って、0x12 は 18、
あるいは 022 と同じです。8 進表記を使う場合は、注意してください。08 や
09 は、8 と 9 が有効な 8 進数ではないため、有効な数値ではありません。
----------------------------------------抜粋終わり

08や09は数値の先頭に0がついているため8進数と見なされますが、
8進数としてはあり得ない数値なのでエラーとなります。

set /A mm=%mm% - 1
の行を便宜的に以下のように書き換えればいいでしょう。

:月から1を引く(8進数対策)
set /A mm=1%mm% - 101
536.
Re2:エラー(無効な数字です)
2004年06月15日(火) 11時26分
donkey
じゃくサン早速ありがとうございます。
私はDOSプロンプトの設定が有るのかなーと思って探していたのですが、
これでは見つかるわけありませんね。

>08や09は数値の先頭に0がついているため8進数と見なされますが、
>8進数としてはあり得ない数値なのでエラーとなります。

>set /A mm=%mm% - 1
>の行を便宜的に以下のように書き換えればいいでしょう。

>:月から1を引く(8進数対策)
>set /A mm=1%mm% - 101

そうだったんですね!
本当に勉強になります。
ありがとうございました。
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ
カテゴリー「各種のエラーメッセージと対処」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2004年06月15日 13:57に投稿されたエントリーのページです。

ひとつ前の投稿は「スクリプトの一括実行について。」です。

次の投稿は「Windowsのバージョン判断」です。

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

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