🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

バッチファイル

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

Q&A

2回答

22153閲覧

for文で「コマンドの構文が間違っています」と表示されてしまう

thumpx3

総合スコア10

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

バッチファイル

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

0グッド

0クリップ

投稿2019/09/20 10:20

編集2019/09/24 05:54

以下のようなバッチファイルを作成し実行したのですが、「コマンドの構文が間違っています」というエラーとなってしまいました。
エラー原因を特定したいのですが、いかんせんエラーメッセージが不親切なのでご協力いただきたいです。
環境はWindows Server 2016です。自分の端末で(Win7)テストした際には動作していたと思うのですが…

setlocal enabledelayedexpansion for /r <ディレクトリパス> %%i in (*.*) do ( (処理) ) exit 0

エラーメッセージ:コマンドの構文が誤っています。

以下を試したのですが、原因の特定には至りませんでした。

setlocal enabledelayedexpansion for /r <ディレクトリパス> %%i in (*.*) do pause exit 0

結果:正常終了(pauseの処理で止まった)

setlocal enabledelayedexpansion for /r <ディレクトリパス> %%i in (*.*) do echo %%i

結果:正常終了(ディレクトリパス内のフォルダのファイル名が出力された)

for /r <ディレクトリパス> %%i in (*.*) do ( (処理をすべてコメントアウト) ) exit 0

結果:コマンドの構文が誤っています。

for /r <ディレクトリパス> %%i in (*.*) do ( pause ::コメント ) exit 0

結果:) の使い方が誤っています。

上記の結果からdo辺りで何か問題があるのかと考えております。
考えられる原因や調査の観点等ご教授ください。

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

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

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

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

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

otn

2019/09/20 12:12

一番最後の例で、コピペして、<ディレクトリパス> の部分だけ . に書きかえて実行しましたが、エラーになりません。 ちゃんとコピペしましたか?
guest

回答2

0

::コメント

これはコメントの記法ではないのをわかったうえで書いていますか?
これはラベル定義の記法です。ラベルなので、次の行にラベルを付けられる命令が必要です。
(ラベル定義の記法としては、コロンは1つでいいですが)

コメント文はremです。

CMD

1for /r <ディレクトリパス> %%i in (*.*) do ( 2pause 3rem コメント 4)

または、

CMD

1for /r <ディレクトリパス> %%i in (*.*) do ( 2::コメント 3pause 4)

投稿2019/09/24 11:19

otn

総合スコア85888

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

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

0

そのディレクトリパスに空白が入ってるとかしてるんでは

投稿2019/09/20 10:24

y_waiwai

総合スコア88038

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

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

thumpx3

2019/09/20 10:34

y_waiwaiさん ご回答ありがとうございます。 ディレクトリパスに空白は入っていませんでした。
y_waiwai

2019/09/20 10:38

あとはdoの後ろのカッコがだめとかそこらへんかな?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問