2014.
11.
30
14:25:13
結論から書くと、こんな感じですφ(--)
■やりたかったこと
「hoge.txt」を「hoge001.txt」から「hoge100.txt」まで
連番付きのファイル名にしてコピーする。
■作ったバッチファイル
一応、コードの補足をしておきますね。
やっている処理は、単に連番付きのファイル名を生成してコピーしているだけです。
で連番付きファイル名を作成し
でコピーしています。
って、コメントでも書いてあるので、分かりますよね。
連番のゼロ埋めについて、よく分からない方は
Windowsバッチファイル(.bat)、数値を特定の桁数になるように0埋めする
の記事をご覧ください。
今回は横着して一番見た目が単純なのにしましたが、やり方はいろいろあります。
また、今回作ったバッチファイルを理解するには、遅延環境変数の展開についての知識が必要です。
遅延環境変数の展開については
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典:遅延環境変数
あたりが分かりやすいと思います(ステマ)。
他にも実際のバッチファイルでは、エラー処理を入れたり、
ファイル名等を引数で渡すようにしたりしています。
ただまぁ、核となる処理は今回書いた程度ですよ(--)ノ
1.ファイル名を生成して
2.ファイルをコピーする
3.「1.」「2.」を繰り返す
だけです。
そんな感じ\(--)/
■やりたかったこと
「hoge.txt」を「hoge001.txt」から「hoge100.txt」まで
連番付きのファイル名にしてコピーする。
■作ったバッチファイル
@echo off
setlocal enabledelayedexpansion
REM コピー元ファイル名
set org_file_name=hoge.txt
REM コピー後ファイル名連番より前の部分
set file_name_prefix=hoge
REM コピー後ファイル名連番より後の部分
set file_name_extension=.txt
REM 連番を何桁までゼロ埋めするか
set pad=3
REM コピーするファイルの数
set make_file_num=100
for /l %%i in (1, 1, %make_file_num%) do (
REM コピー後ファイル名生成
set num=00000%%i
set file_path=%file_name_prefix%!num:~-%pad%!%file_name_extension%
REM ファイルコピー
copy %org_file_name% !file_path!
)
setlocal enabledelayedexpansion
REM コピー元ファイル名
set org_file_name=hoge.txt
REM コピー後ファイル名連番より前の部分
set file_name_prefix=hoge
REM コピー後ファイル名連番より後の部分
set file_name_extension=.txt
REM 連番を何桁までゼロ埋めするか
set pad=3
REM コピーするファイルの数
set make_file_num=100
for /l %%i in (1, 1, %make_file_num%) do (
REM コピー後ファイル名生成
set num=00000%%i
set file_path=%file_name_prefix%!num:~-%pad%!%file_name_extension%
REM ファイルコピー
copy %org_file_name% !file_path!
)
一応、コードの補足をしておきますね。
やっている処理は、単に連番付きのファイル名を生成してコピーしているだけです。
set num=00000%%i
set file_path=%file_name_prefix%!num:~-%pad%!%file_name_extension%
set file_path=%file_name_prefix%!num:~-%pad%!%file_name_extension%
で連番付きファイル名を作成し
copy %org_file_name% !file_path!
でコピーしています。
って、コメントでも書いてあるので、分かりますよね。
連番のゼロ埋めについて、よく分からない方は
Windowsバッチファイル(.bat)、数値を特定の桁数になるように0埋めする
の記事をご覧ください。
今回は横着して一番見た目が単純なのにしましたが、やり方はいろいろあります。
また、今回作ったバッチファイルを理解するには、遅延環境変数の展開についての知識が必要です。
遅延環境変数の展開については
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典:遅延環境変数
あたりが分かりやすいと思います(ステマ)。
他にも実際のバッチファイルでは、エラー処理を入れたり、
ファイル名等を引数で渡すようにしたりしています。
ただまぁ、核となる処理は今回書いた程度ですよ(--)ノ
1.ファイル名を生成して
2.ファイルをコピーする
3.「1.」「2.」を繰り返す
だけです。
そんな感じ\(--)/