質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

2回答

17546閲覧

バッチファイルで使い方が誤っていますと表示される

carp08

総合スコア1

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2021/01/07 07:29

バッチファイルを作成していたところ「使い方が誤っています」と表示され原因不明で質問させていただきます。

@echo off set UPD_YYYYMM = 202012 set UPD_YYYY = 0 if %UPD_YYYYMM%:~4,2% leq 03 ( set /a UPD_YYYY= %UPD_YYYYMM:~2,2% - 1 ) else ( set UPD_YYYY= %UPD_YYYYMM:~2,2% ) echo %UPD_YYYY%

エラーコードは以下の内容です。

C:\Users\19128875>test2.bat C:\Users\19128875>set UPD_YYYYMM = 202012 C:\Users\19128875>set UPD_YYYY = 0 2 の使い方が誤っています。 C:\Users\19128875>if 202012:~4,2 leq 03 ( C:\Users\19128875>test2.bat 2 の使い方が誤っています。

内容は引数のMMが03以下ならYYYYから1引いて下2桁を表示させたいです。
初心者なため、基本的な箇所ですが回答いただければ幸いです。
よろしくお願いいたします。

実行環境
Windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

2行目、3行目のイコール(=)の左右に空白は不要です。
また、if文では余計な % があります。YYYYMMの右にある % は不要です。

bat

1set UPD_YYYYMM=202012 2set UPD_YYYY=0 3... 4if %UPD_YYYYMM:~4,2% leq 03 ( 5

投稿2021/01/07 07:53

NagaseTomohiko

総合スコア91

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

carp08

2021/01/07 08:04

余計な%が悪さをしていたようです。解決できました。 迅速な回答ありがとうございました。
guest

0

if %UPD_YYYYMM%:~4,2% leq 03 (

set /a UPD_YYYY= %UPD_YYYYMM:~2,2% - 1

) else (
set UPD_YYYY= %UPD_YYYYMM:~2,2%
)

BATファイルではこのようなifの使い方はできません
コマンドプロンプトで、
if /?
と打てば使い方が出てきます

投稿2021/01/07 07:33

編集2021/01/07 07:34
y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

carp08

2021/01/07 08:04

回答ありがとうございます。 ソース内に余計な%があったのが悪さしていたようです。 今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問