- ベストアンサー
ファイルのバッチ処理について
- バッチ処理を勉強している際に、ファイルの結合に関する問題が発生しました。
- 特定のディレクトリとそのサブディレクトリに存在する複数のファイルを再帰的に結合するためのバッチ処理ですが、うまく機能しませんでした。
- バッチ処理の中で使用しているパス指定に問題がある可能性があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
・ バッチファイルでこんなことが出来るのかと参考になりました。 ありがとうございます。 ・ さて、ご質問の件ですが、renコマンドは、 REN [ドライブ:][パス]ファイル名1 ファイル名2 となっており、第二引数はファイル名であって、パスが付いてはまずいようです。 その場合、移動となってしまうからでしょう。 ren %%ftemp %%f の %%f が違反しているのでしょう。 call /? でヘルプをみて、%1 に対して %~nx1 を利用することを考えてみてください。 今回は、%%f に対して %%~nxf でしょうか。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
もうすこし易しいスクリプトからはじめた方が良いと思います。 > call copy /B %bomfilepath%bom.txt+%%f %%ftemp この%%ftempは何を意図して書いていますか? call を付けた意図は何ですか?callのこういう使い方は入門書には無いはずですが? >for でC:\bom.txtファイルとほかのファイルと再帰的に結合して、 >ファイル名はそのままにしたいですが、 また、問題の日本語もおかしいです。二つのことを書こうとして混じってしまっています。正しくは、こうでしょう? <C:\bom.txtファイルとほかのファイルと結合して、ファイル名はそのままにしたいです。 <forで指定したフォルダの下を再帰的に処理したいです。 @echo off set bomfilepath=C:\ for /R %1 %%f in (*.*) do ( copy /B %bomfilepath%bom.txt+%%f %TEMP%\ftemp move /Y %TEMP%\ftemp %%f )
- Tacosan
- ベストアンサー率23% (3656/15482)
copy や del を call する理由ってなんだろ? ren じゃなくって move は使えないかなぁ?