連番で名前をつけるbatファイルとは?

このQ&Aのポイント
  • 連番で名前をつけるbatファイルは、複数のファイルを一度に作成するためのバッチファイルです。
  • このバッチファイルを使えば、簡単に連番を付けた複数のファイルを作成することができます。
  • batファイルを使えば、手作業でファイルを一つずつ作成する手間を省くことができます。
回答を見る
  • ベストアンサー

連番で名前をつけるbatファイルについて!

このバッチファイルについて解説よろしくおねがいします。 (*´ω`*) まだbatファイルをあまりいじったことないので 所見でパッとかけないのですが、 何回かかいて覚えるしかないですかね? よろしくおねがいします。(*´ω`*) 連番を付けた複数ファイルを一瞬で作成する https://pc-automation.tech/wp/make-sequence-number-files/ @echo off set /p filename="ファイル名を入力してください:" set /p extension="拡張子を入力してください:" set /p number="ファイル数を入力してください:" setlocal enabledelayedexpansion for /l %%n in (1,1,%number%) do ( set num=0%%n set num=!num:~-2,2! type nul > !num!_%filename%.!extension! ) endlocal

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8010/17118)
回答No.1

あなたの書いているリンク先に簡単な説明が載っている。

tasukete2018
質問者

お礼

回答ありがとうございます。 分かりました。それを見てみますね。 (*´∀`*)

関連するQ&A

  • バッチファイルで画像ファイル名の頭文字を削除したい

    一括で、画像のファイル名の頭4文字を削除したいと思っています。 拡張子はJPGで、バッチで作成しています。 ほぼ、うまく動いているのですが、 1つ目の画像ファイルだけが、8文字削除されてしまいます。 どこが間違えているのかが分からなくて、 ご教授いただけますでしょうか。 よろしくお願いいたします。 @echo off setlocal enabledelayedexpansion for %%F in (*.jpg *.png *.gif *.bmp) do ( set "filename=%%~nF" set "extension=%%~xF" rem ファイル名が4文字以上の場合にのみ先頭4文字を削除 if "!filename:~4!" neq "" ( set "tempname=!filename:~4!!extension!" rem ファイル名が元の名前と異なる場合のみリネーム if not "!tempname!"=="%%F" ( ren "%%F" "!tempname!" ) ) else ( echo ファイル名が短すぎて変更できません: "%%F" ) ) endlocal

  • 画像のファイル名の末尾の文字4文字を削除したい

    一括で、画像のファイル名の末尾の文字を削除したいと思っています。 バッチで先頭の文字4文字を削除できたのですが、 末尾の文字4文字を削除にしたいのですが、 どうすれば良いのかを教えていただけませんか。 ご教授いただけますでしょうか。 @echo off setlocal enabledelayedexpansion for /f "delims=" %%F in ('dir /b /a-d *.jpg *.png *.gif *.bmp') do ( set filename=%%~nF set extension=%%~xF rem ファイル名が4文字以上の場合にのみ先頭4文字を削除 if "!filename:~4!" neq "" ( set "tempname=!filename:~4!!extension!" rem リネーム後のファイル名が存在しない場合のみリネーム if not exist "!tempname!" ( ren "%%F" "!tempname!" ) ) else ( echo ファイル名が短すぎて変更できません: "%%F" ) )

  • バッチファイルで<&4と4<%1は何をしているの?

    MS-DOSバッチファイルで、 コマンド1 > ファイル名 2>&1 というような書き方をして、 標準出力だけでなくエラー出力もファイルに書き出すことが できることは理解しています。 そして、数値は0,1,2の3つがあり、各々、 ハンドルSTDIN(キーボード入力) ハンドルSTDOUT(コマンドプロンプトウィンドウへの出力) ハンドルSTDERR(コマンドプロンプトウィンドウへのエラーの出力) であることも理解しています。 しかし、 この数値が3以上で使用されているコードを見かけました。 例えば、 ネット上に以下のコードがあったのですが、 SET /P s1= >NUL <&4 の「>NUL」の部分は、 メッセージが画面に表示されないようにしていると思いますが、 「&4」の部分と 最後の行の4<%1の「4」の部分は何をしているのでしょうか。 実際に動かしてみると、 %1(file1.txt)ファイルの各行が、1行ずつ、 4という名前の変数(ハンドル?)に順番に入っていき、 &4の部分でそれを取り出して、 環境変数s1に代入(セット)しているように見えます。 私は、バッチファイルで、 このような(3以上の数値を使った)使用法を いままでに見たことがありませんでした。 このような使い方を詳しく解説しているサイト がありましたら教えてください。 よろしくお願いします。(Windows10) ---Paste.CMD--------------------------------- @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION (FOR /F %%0 IN ('FIND /C /V ""') DO SET a1=%%0) <%1 (FOR /F %%0 IN ('FIND /C /V ""') DO SET a2=%%0) <%2 IF %a1% LSS %a2% SET /A a1=a2 (FOR /L %%k IN (1,1,%a1%) DO ( SET s1= SET s2= SET /P s1= >NUL <&4 SET /P s2= >NUL <&5 ECHO:!s1! !s2! ) ) 4<%1 5<%2 ------------------------------------ 使用例 paste file1.txt file2.txt ------------------------------------

  • バッチファイル(batファイル)

    あることを自動化するために、あるサイトのバッチファイルをコピー&ペーストして使おうと思っています。 (自由に使用していいと表記してあります) しかし、使用されているプログラムがいくつか入手できなかったり、バッチファイルをいくつか繋げたらら上手くいかなかったりと、 色々と問題があり、自分で改変をしています。 初めてバッチファイルの中身を触ったような初心者なので、色々と試行錯誤しているのですが、行き詰ってしまいました。 上記のように初心者なので、言葉がおかしい所があったりするかもしれませんが、 回答よろしくお願いします。 本題です。 ファイルのドロップで処理を始めたいのですが、どうやらファイル名に半角の#が含まれていると途中でエラーが出るので、 処理の一番最初でファイル名の半角#を全角#に置き換えようとしたのですが上手くいきませんでした。(ファイル名の変更) なので新たなバッチファイル、"ドロップ用.bat"を作り、そこでファイルの置き換えを行ってから、callコマンドで 本命のバッチファイルaaa.batを呼び出そうとしました。 それでもうまくいかないため、質問させていただきました。 バッチファイルは一つのフォルダーにまとめていますが、ドロップするファイルは別のフォルダーにあります。 なお、ドロップするファイルのフルパスには、空白が含まれる可能性があります。 ドロップ用.bat--------------------------- @echo off setlocal set abc=%~n1 set def=%abc:#=#% ren "%~nx1" %def%%~x1 set ghi="%~dp1%def%%~x1" set jkl=%~dp0 call "%jkl%aaa.bat" "%ghi%" rem pause endlocal exit /b ----------------------------------------- ややこしくてまわりくどいバッチファイルですみません。 Windows7を使っています。 C:\windows\system32\cmd.exeと上には書いてあります。 よろしくお願いします。

  • バッチで配列に入れた値が正しく表示されない

    バッチファイルでファイルから読み込んだ内容を配列(もどき)の 変数に格納し、直後、表示させるということをやっているのですが、 配列に格納した値を正しく表示してくれません。 どうすれば良いのか教えてください。 都合により、setlocal~endlocalを使用しています。 ----- sample.txt 1234567890 123 456 789 0 abc def ghi jik lmn opq rst uvw xyz abcxyz ABC XYZ 1234567890 ----- a.bat echo off setlocal enabledelayedexpansion for /F "delims=" %%A in (c:\tmp\sample.txt) do ( set cnt=0 set rdtxt=%%A echo -item: %%A for %%b in (!rdtxt!) do ( echo -item2: %%b set x[!cnt!]=%%b echo !cnt!:!x[!cnt!]! set /a cnt=!cnt!+1 ) ) endlocal 結果ですが、 「echo !cnt!:!x[!cnt!]!」での表示が正しくない 0:cnt 0:cnt 1:cnt 2:cnt となってしまう。

  • バッチを使って画像名『+』『.』『_』を削除したい

    バッチを使って、画像名の『+』、『.』、『_』を削除するというバッチを作りたいです。 実行はできたのですが、JPGの画像が、見れなくなってしまいました。 多分、画像の拡張子が潰れてしまったのだと思います。 下4桁『.jpg』を保持したまま、作りたいです。 どこが悪いのか、教えていただけますでしょうか。 @echo off setlocal enabledelayedexpansion set "source_folder=C:\path\to\your\images" for %%f in (%source_folder%\*) do ( set "filename=%%~nxf" set "filename=!filename:+=!" set "filename=!filename:.=!" set "filename=!filename:_=!" ren "%%f" "!filename!" ) echo Done! pause

  • batファイルでファイルの件数取得

    batファイルでカレントフォルダ内のCSVファイルの件数を取得したく、 以下のbatファイルを作成しましたが、件数が多いと若干のズレがでます。 どこがダメなのでしょうか?ご教授お願いします。 for /f "usebackq" 55i in(`dir /B /S *.csv`) do ( SET /P<NUL=%%i: type %%i | find /c /v "" )

  • batファイルでPC名称の変更

    お世話になります。 今batファイルでPC名称を変更できるようにしているのですが 英数字のみなら下記でいけるのですが「-」が入ると「Verbスイッチが無効です」 と出て変更できません。 どなたかいい方法はご存知でしょうか? 尚業務上の使用のためbatファイルのみでやりたいのでその他ソフトは使用不可です。 echo PC名称を入力してください echo 例:PCNAME set /p Pcname=入力: rem 入力値の確認 echo *************************************** echo  PC名称確認 echo. echo  PC名称は[ %Pcname% ]です echo. echo *************************************** echo 0:PC名称の修正 echo [0]以外を入力した場合はYesになります echo *************************************** rem set Slt=nul set /p Slt=確認入力: if '%Slt%'=='0' goto loop echo PC名称を設定します。しばらくお待ちください。 wmic ComputerSystem WHERE "name='%computername%'" Call Rename %Pcname よろしくお願いいたします。

  • 遅延環境変数 バッチファイル(.batファイル)

    下記のプログラムで 1_あ001 2_い002 3_う003 や 1_い1 2_ろ2 3_は3 のようにフォルダを作りたいです。 下記実行するとうまくいきません。 遅延環境変数をどうセットしたらよいでしょうか。 よろしくお願いいたします。 @echo off setlocal enabledelayedexpansion SET aiu_1=あ SET aiu_2=い SET aiu_3=う SET iroha_1=い SET iroha_2=ろ SET iroha_3=は echo あいう→1 or いろは→2? set /p SELECT= if %SELECT% equ 1 ( set KANA=aiu ) else if %SELECT% equ 2 ( set KANA=iroha ) else ( echo 数値が違います。終了します。 exit /b ) echo 0埋めなし→1 or あり→2? set /p SELECT1= if %SELECT1% equ 1 ( set SUFFIX= ) else if %SELECT1% equ 2 ( set SUFFIX=000 ) else ( echo 数値が違います。終了します。 exit /b ) set i=1 :ForEach set it=!%KANA%_%i%! if defined it ( set SUFFIX1=%SUFFIX%%i% mkdir %i%_%it%%SUFFIX1:~-3% set /a i+=1 goto:ForEach ) あいう→1 or いろは→2? 2 0埋めなし→1 or あり→2? 2 を選択すると 1_い~-3 2_ろ001 3_は002 となります。 あいう→1 or いろは→2? 1 を選択すると、0埋めなし→1 or あり→2? でどちらを選んでも フォルダ作成なしです。 また!~!の指定箇所によりフォルダを作り続けるため強制停止が必要になります。

  • バッチファイルの変数引継ぎについて

    行き詰ってしまったので、どなたか知恵を授けていただければと思います。 現在、あるソフトウェアの「バッチモード」という機能を使用したバッチを作成していて、構文が > sdcmd batch ***.txt 上記のようにコマンドを羅列したテキストファイルを指定した実行コマンドになります。 sdcmd以降はソフト指定のコマンド以外は使用できず、変数設定ができない為に変数設定とログ保存を兼ねて上記コマンドを記載したバッチを > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > call aaa.bat %* >> aaa.log 2>&1 という内容の呼び出しバッチを作成たのですが、テキストファイル内の変数が代入されずに 実行されてしまいます。 cmd上から直接 > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > sdcmd batch ***.txt >> aaa.log 2>&1 を実行しても変数の代入は行われませんでした。 cmd上で変数とテキストファイル内のコマンドを手動実行すれば変数は解決できます。 設定した変数を、テキストファイル内の変数値に代入する方法はあるでしょうか。