• 締切済み

WindowsXPでテンポラリファイル名を生成する

全角文字のファイル名がついた大量のファイルをバッチ処理したいのですが、 処理用のコマンドが日本語ファイル名を受け付けないらしく、異常終了します。 ファイル名を半角文字にリネームして処理すれば問題ないので、 そのようにすればいいのですが、大量すぎて手作業での着手を躊躇しています バッチ内で以下のことをしたいのですが、 1. 元ファイル名を保存 2. ユニークなテンポラリファイル名を生成 3. リネームして変換処理 4. 元ファイル名に戻す 2.をWindowsXPで行う方法はありますか? 一応http://gnuwin32.sourceforge.net/packages/mktemp.htmから mktempコマンドを拾ってきたのですが、AppData/Temp内にテンポラリファイルを作るのみで それをどうバッチ内で使うかがわかりませんでした。 いい方法を教えてください。よろしくお願いします。

みんなの回答

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

いろいな方法があると思いますが、同じ名前を使い回せば一つで良いと思います。 ・長めのありえないようなファイル名を用意して使う。  心配なら find などを使ってそのファイル名のファイルが存在しないことを確認しておく ・マシンの時刻 and/or 日付をファイル名にする。  下記にその方法が載っていますが、時刻だけでも良いし、日付と時刻の両方を使っても良いと思います。  これも心配なら、ファイル名が存在しないことを確認しておく。 http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

hzd00430
質問者

お礼

(長いとはいえ)同じ一時名を使いまわすと、 不慮のバッチ処理停止時等に次々上書きされてしまうのでは、 という危惧から避けたいと考えています。 システム時刻を使うのは十分実用性ありと思いました。 回答ありがとうございました。

関連するQ&A