- ベストアンサー
Q>Windowsでファイルをコピーする処理の作り方を教えて
こんばんは。WindowsXPで動作するバッチについて教えてください。 コマンドプロンプトかPerl、ExcelVBA、あるいは他の方法で以下の処理をするバッチを作りたいと思っています。 //------------------------------------- (1)WindowsXPのPC(PC1)で一定時間間隔(1時間おきくらい)に起動する。 (2)別のPC(PC2)にネットワーク接続する。 (3)PC2の特定のフォルダに特定のファイルがあったらPC1にコピーする。 ただしそのファイルがすでにPC1にあったら上書きしない。 //------------------------------------- (1)はWindowsのタスクスケジューラでできると思っていたのですが、 タスクの起動間隔は最低1日だったのでダメでした。 (2)はコマンドプロンプトなら NET USE コマンドでできるはず。 ですがPerlだとやり方がわかりません。 (3)は上書きしない方法がわかりません。コマンドプロンプトでCOPYするとY/Nを訊かれるし、 copy/yだと上書きされてしまいます。 他のフォルダに退避する、とか無理やりならできなくもないですが。 私はコマンドプロンプト、Perl、VBA 以外のスクリプトには慣れていないので できればこのうちのどれかでやりたいと思っています。 うまい方法はないでしょうか? 知恵をお貸しください。m(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(1)はWindowsのタスクスケジューラでできると思っていたのですが、 >タスクの起動間隔は最低1日だったのでダメでした。 そんなことはありません、オプションで設定可能です。 http://www.koikikukan.com/archives/2007/08/21-015016.php >(3)は上書きしない方法がわかりません。 DOSコマンドなら「if exist <ファイル名>」で可能です。 http://ykr414.com/dos/dos05.html#04
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
コマンドプロンプト、Perl、VBA のスクリプトに慣れているなら、 VBスクリプトを使ってWSH(window scripting host)で記述するのが よいと思います。 ファイルやフォルダーの操作はファイルシステムオブジェクトを 使います。シェルオブジェクトを使って、外部exeファイルや cmd.exe等も呼び出せます (参考) http://timberlandchapel.com/wsh.html http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html http://winofsql.jp/enum/vbsguide/vbsguide_links.htm http://www.happy2-island.com/vbs/cafe02/capter00000.shtml
お礼
WSHでWindowsの操作が出来そうだとは思っていましたが、このURLを見てみるとやはり便利そうですね。 ちょっと勉強してみることにします。 ありがとうございました。
お礼
スケジュールは一度登録してからプロパティで変更できたんですね。 何で最初から設定できないんだろう。。。 if exist はそういえば昔見た覚えがありましたが忘れてました。 おかげさまで解決です。ありがとうございました。