こんにちは。ナガオカ(@boot_kt)です。
Windowsのbatで、ネットワーク越しにファイルコピーするプログラムを解説します
この記事のザックリした内容
◆対象読者
- Windowsのbatでネットワーク越しにファイルコピーしたい
合わせて読みたい
ネットワーク越しのファイルコピーのbatプログラムのソースコード
基本的にWindowsのbatとかDOSプロンプトはネットワークを使えません
「C:\hogehoge・・・
」みたいなアドレスは扱えるのですが、
「\\hoge\fuga・・・
」みたいなアドレスは扱えません
じゃ、どうやるのかと言うと、
ネットワークドライブ
を扱います
ネットワークドライブとは、簡単に言うと、ネットワークにある共有フォルダとかをコンピュータに内蔵されたドライブのように見せるものです
ドライブとは、CドライブとかDドライブとかのこと
ドライブがよく分からないなら、内蔵ハードディスクや内蔵SSDのことと思ってください
詳しくは別途ググってください
ってことで、コピー先であるネットワーク上の共有フォルダをネットワークドライブにしてしまえば
分からんかったら聞いてね♪
>> GitHub/gabekore/bat/file_copy_to_network/
rem ******************************************** rem File Copy to Network rem ◆期待する引数: rem %1:コピーしたいファイル(←ドラッグ&ドロップ) rem 1個だけを想定 rem ※コピー先のネットワークは固定 rem ◆注意 rem 動作確認したものを紙に印刷してそれを見ながら再度打ちました rem その際、多少コードを変更していますが動作確認してません rem 変な不具合あるかも知れません rem ******************************************** @echo off rem 本batの起動ディレクトリをカレントディレクトリにする cd /d %~dp0 rem コピーしたいファイルのフルパス set TARGET_FILE=%1 rem コピーしたいファイル名+拡張子のみ set TARGET_FILE_NAME=%~n1%~x1 set YYMMDD=%date:~2,2%%date:~5,2%%date:~8,2% set NETWORKDRIVE=X: set NET_USE_CMD=net use %NETWORKDRIVE% rem /Y オプションは上書き確認 set COPY_CMD=copy /Y %TARGET_FILE% %NETWORKDRIVE%\. rem 処理実行 call :NETUSE_AND_COPY \\NETWORK-MACHINE1\Hoge\Fuga\ call :NETUSE_AND_COPY \\NETWORK-MACHINE2\Hoge\Fuga\ call :NETUSE_AND_COPY \\NETWORK-MACHINE3\Hoge\Fuga\ exit /b 0 rem ******************************************** rem サブルーチン:NETUSE_AND_COPY rem ◆期待する引数: rem %1:コピー先のパス rem ◆処理順序: rem 1.ネットワークドライブを作る rem 2.サーバーのファイルをbkup(初回のみ) rem bkupファイルが無いときだけ実行 rem あるならやらない rem バックアップファイルは「.yymmdd」を付与 rem 3.copyする rem 4.ネットワークドライブを削除 rem ******************************************** :NETUSE_AND_COPY rem 1. %NET_USE_CMD% %1 rem 2. set SERVER_FILE=%NETWORKDRIVE%\%TARGET_FILE_NAME% if not exist %SERVER_FILE%.%YYMMDD% ( copy %SERVER_FILE% %SERVER_FILE%.%YYMMDD% ) rem 3. %COPY_CMD% rem 4. %NET_USE_CMD% /delete exit /b 0
広告
参考書籍
プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!