バッチ処理のコピーについて
◇-?バッチ処理のコピーについて-HIRO(初)(2005/09/15-17:01)No.292453 ┗?!Re:バッチ処理のコピーについて...-jtaka[BJCB](2005/09/15-18:51)No.292485 ┣?!!Re:バッチ処理のコピーについて...-jtaka[BJCB](2005/09/15-18:56)No.292488 ┗?!【ありがとう】Re:バッチ処理の...-HIRO(2005/09/16-14:26)No.292670
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
292453 | バッチ処理のコピーについて | HIRO(初) | 2005/09/15-17:01 |
メーカー名:DELL デル OS名:WindowsXp パソコン名:Dimension4700C -- ファイルのバックアップをとるのに コピー元のファイルの先頭にその時の日時を入れたいのですが、 このようなことはできるんでしょうか? 例えば、 AAA.txt → 200509151620AAA.txt という感じにしたいのですが・・・。 アドバイスお願いします。 |
▲このページのトップに戻る
292485 | Re:バッチ処理のコピーについて | jtaka[BJCB] | 2005/09/15-18:51 |
記事番号292453へのコメント 完全なデバッグやってないけど、 @echo off set DATESTR=%date:~0,4%%date:~5,2%%date:~8,2% set fn=%DATESTR%%1 ren %1 %fn% set DATESTR= set fn= って感じのバッチファイルで、たとえばバッチファイル名をrendate.bat にすると、変更したいファイルのあるディレクトリに移動して rendate AAA.txt とすると、AAA.txtが現在の日付2005/09/15に対応して 20050915AAA.txt にリネームされるはず。 ちょっと詳細な説明: 環境変数dateの内容は、現在の日付が、地域と言語のオプション->地域オプション ->標準と形式の(日時の)短い形式で格納されている。 ここで %date:~0,4% と評価すると、環境変数の内容の0番目から4文字ぶんだけ取り出される。 これはdateの年の部分になる。 %date:~5,2% で5番目から2文字文取り出されて、月の部分になる。 %date:~8,2% は同様に日の部分になる。 これを並べて環境変数DATESTRに設定するとdateのスラッシュがとれた形式に なる。 set DATESTR=%date:~0,4%%date:~5,2%%date:~8,2% %1はコマンドの第1の引数が入る変数で、環境変数fnに set fn=%DATESTR%%1 とすることによって引数の前に現在の日時のスラッシュを除いた文字列が 付いたものが格納される。 で ren %1 %fn% で引数で示されたファイル名を日付付きのファイル名にリネームする。 最後の2行は環境変数をクリアしている。 ここのぶぶんはsetlocalを使ったローカル環境変数を使うともっとスマートに できるかも知れない。 時刻をつける場合は、環境変数timeをつかって同様にできるはず。 まぁ、あとは工夫してくださいと。 |
▲このページのトップに戻る
292488 | Re:バッチ処理のコピーについて | jtaka[BJCB] | 2005/09/15-18:56 |
記事番号292485へのコメント ちなみに、環境変数の一部の抽出はNT系のコマンドプロンプト(cmd.exe)でしか できないんじゃないかと思う。Win9x系だったらWSHとかのスクリプトをつかう しかないんじゃないかと思う。NT系でもその手のスクリプトの方が直感的な コードが書けそうな気がするする。 |
▲このページのトップに戻る
292670 | Re:バッチ処理のコピーについて | HIRO | 2005/09/16-14:26 |
記事番号292485へのコメント jtaka[BJCB]さんは No.292485「Re:バッチ処理のコピーについて」で書きました。 ありがとうございました。 何とか日付を入れることができました。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|