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

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

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

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

Q&A

解決済

2回答

10729閲覧

windowsでのバッチ処理

Chandler_Bing

総合スコア673

バッチファイル

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

0グッド

0クリップ

投稿2019/08/19 02:38

編集2019/08/19 03:36

実現したいこと

デスクトップにSongsフォルダを作成し、その中にsong_out.txtファイルを作成する。
そのsong_out.txtファイルにデスクトップにあるsong.txtを一行ずつ読み込んでsong_output.txtに1行ずつ書き込む

以下のコード作成しました。(mine.bat/デスクトップ)

bat

1 2rem 以下はデスクトップにあるmine.batファイルです 3@echo off 4 5rem カレントディレクトリにSongsフォルダを作成する 6 7mkdir Songs 8echo %errorlevel% 9 10if not %errorlevel% == 0( 11 rem 処理に成功していれば、Songsフォルダの中にテキストファイルを作成 12 type nul > Songs\song_output.txt 13 for /f "delims=" %%a in (song.txt) do ( 14 rem 読み込んだデータを1行ずつ書き込む 15 echo %%a>> Songs\song.txt 16) 17 18) else ( 19 echo 処理を中断します 20 pause 21 exit 22)

以下のようなエラーが表示されます。

The syntax of the command is incorrect.

バッチ処理は始めたばかりです。
見て理解、はある程度できますが書くことにはまだまだ慣れておりません。

どこに間違いがるかご教授頂けませんでしょうか。

変更後 mine.bat

bat

1@echo off 2 3rem カレントディレクトリにSongsフォルダを作成する 4 5mkdir Songs 6echo %errorlevel% 7 8if not %errorlevel% == 0 ( 9 rem 処理に成功していれば、Songsフォルダの中にテキストファイルを作成 10 C:\Users\ユーザー名\Desktop\Songs> type nul > song_output.txt 11 for /f "delims=" %%a in (song.txt) do ( 12 rem 読み込んだデータを1行ずつ書き込む 13 echo %%a>> C:\Users\ユーザー名\Desktop\Songs\song_output.txt 14) 15 16) else ( 17 echo 処理を中断します 18 pause 19 exit 20)

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

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

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

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

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

Zuishin

2019/08/19 02:44

コピーすればいいだけじゃないんですか?
Chandler_Bing

2019/08/19 02:58

その通りなのですが、バッチ処理の練習をしたいので、、、、。
Zuishin

2019/08/19 03:02

人にコードもらって練習になりますか?
guest

回答2

0

恐らく、構文エラーになっているのはここでしょうね。

bat

1if not %errorlevel% == 0(

その通りなら、括弧の手前にスペースを入れてみてください。

bat

1if not %errorlevel% == 0 (

投稿2019/08/19 03:24

kenshirou

総合スコア772

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

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

Chandler_Bing

2019/08/19 03:35

ありがとうございます。 フォルダは出来たのですが、そのフォルダの中にtxtファイルが作成されません。 他にもいろいろと変更したので追記します。
guest

0

自己解決

解決しました。

以下のコードで動きました。(妥当かどうかはわかりません)

bat

1@echo off 2 3rem カレントディレクトリにSongsフォルダを作成する 4 5mkdir Songs 6echo %errorlevel% 7 8if %errorlevel% == 0 ( 9 rem 処理に成功していれば、Songsフォルダの中にテキストファイルを作成 10 for /f "delims=" %%a in (song.txt) do ( 11 rem 読み込んだデータを1行ずつ書き込む 12 echo %%a>> Songs\song_output.txt 13) 14 15) else ( 16 echo 処理を中断します 17 pause 18 exit 19)

投稿2019/08/19 03:43

Chandler_Bing

総合スコア673

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問