- ベストアンサー
dosのbatファイルでファイルを取得後、日付のフォルダをつくる。
dosのbatファイルでクライアントPCからファイルを取得後、自分自身のPC(サーバー側)に日付(yyyymmdd)のフォルダを自動的に作り格納する方法はないでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 日付のフォルダをmkdirで作りたい、ということであれば、 以下の方法でできます。 set nowdate = %date% mkdir %nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% なお、「~2,4」「~7,2」「~10,2」の部分は、Windows2000の場合、%date% の値が「火 yyyy/mm/dd」となるので、先頭2文字を削って4文字を抽出、・・・というようにしてyyyymmddを取得しています。 WinNT4.0の場合の%date%の値は分かりませんでしたので、もし上記と形式が異なっていたら「~m,n」の部分を変えてみてください。
その他の回答 (4)
- gaktank
- ベストアンサー率65% (23/35)
>日付フォルダを作成した後にファイルを格納する場合は > set nowdate = %date% > mkdir %nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% >copy aaa.txt %nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% そうですね。以下のようにすると少し見やすくなります。 set nowdate=%date% set nowdir=%nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% mkdir %nowdir% copy aaa.txt %nowdir%
お礼
とても勉強になりました。近くの本屋にいっても 深く追求した本になかなかめぐり合いませんでした。 ありがとうございます。
- gaktank
- ベストアンサー率65% (23/35)
nabepapaさんの環境のOS/接続条件が分からないので、バッチ化する一般的なやり方を。 クライアントPCとサーバPC間で、 ・NetBIOS (ネットワークドライブ、共有フォルダなど) ・ftp、rcpなどのファイル転送サービス が使えればバッチファイルで自動化可能です。 前者は普通に「\\コンピュータ名\共有名」でファイルをコピー、後者はftpログインとftpコマンドをバッチファイルに書きます。 フォルダを作るのはmkdirでできますよね。
補足
ご返事、ありがとうございます。 操作する側がnt4.0で取得される側はlinaxです。 DOSのバッチファイルでLINAXからデータをnt4.0の方へは移動できたのですが そのファイルを日付のフォルダで管理したいのです。 今はファイルを取得後のmkdirで月のフォルダを作って管理していたのですが、より詳細に管理する必要になった為、日ごとのフォルダが必要になりました。
exe形式でよければ フリーソフトで作れば簡単です
LAN形式で接続されていれば可能ですが。 dosだけでは無理ですかね。 \\ホスト名\共有フォルダの接続が出来れば制御方法は エクセルマクロとdosで知っていますが
補足
ご返事、ありがとうございます。 LAN間で接続されているPCから、ファイルを取得できたのですが その後の保存先として、日付のフォルダが必要のなりました。 macroとかはわからないので、DOSで出来る方法がありましたら、ご教授ください。
補足
参考になりました。ありがとうございます。 上記の方法で日付フォルダを作成した後にファイルを格納する場合は下記の書式でよろしいのでしょうか? set nowdate = %date% mkdir %nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% (nt4.0で日付フォルダが出来たと仮定します。) copy aaa.txt %nowdate:~2,4%%nowdate:~7,2%%nowdate:~10,2% で日付フォルダの格納されるのでしょうか?