0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NASからファイルを取得してローカルのファイルを上書きするbat

Posted at

NASからファイルを取得してローカルのファイルを上書きするbat

経緯

RPAでNASに置いてあるExcelファイルを取り込んで処理を行っているフローで、
よくExcelが開かなくなるような不具合(その後開こうとしても真っ白なExcelファイルが表示される)という話があって、
それなら試しにローカルに配置したものをRPAで取り込むように変えてやって見ませんかということで、
NASに配置している最新版をRPAがインストールされているローカル端末に持ってきて、
RPAで指定しているローカルなパスに上書きするようなバッチを作成した備忘です。

作って見た感想

毎回ネットワークパスあたりでつまるなあと思い出した。
あとxcopyの確認メッセージも毎回忘れてる。。。。

@echo off
rem ★環境変数のローカル化により呼び出し元を汚染しないようにする
setlocal

rem
------------------------------------------------------------------------------------------------
rem RPA取込処理で使用するexcelファイルの最新版を取得する
rem  最新版:\\XX.XX.XX.XX\ABCDEFG\001_ABCDE\002_FGHEIJ\
rem  RPAで使用しているパス:ローカルパス
rem
------------------------------------------------------------------------------------------------

rem ★変数を宣言する
set latest_edition_folder_path=\\XX.XX.XX.XX\ABCDEFG\001_ABCDE\002_FGHEIJ\
set file_name=エクセルファイル名
set local_folder_path=C:\Users\xxx\Desktop\xxxxxx\xxxxxxxbat

rem ★バックアップファイル用の年月日時分秒を取得
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%

rem ★bkフォルダがない場合、bkフォルダを作成する
cd %local_folder_path%
if not exist bk mkdir bk

rem ★ローカルファイルを念のためバックアップを取得する
rem  /d:コピー元の日付がコピー先を新しい場合のみコピーする
rem  /y:コピー先にファイルが存在する場合上書き云々の確認メッセージを表示せず強制上書きする
if exist %local_folder_path%\%file_name% (
rem xcopyでよく聞かれる受け側のファイルですか、またディレクトリですかの回避のため、先頭に「echo f | 」を記載
echo f | xcopy /y %local_folder_path%\%file_name% %local_folder_path%\bk\%file_name% 
rem ★ローカルファイルのバックアップをリネームする
rename %local_folder_path%\bk\%file_name% %yyyy%%mm%%dd%%hh%%mn%%ss%_%file_name%
)

rem ★ローカル端末上にNドライブのネットワークパスを作成する
net use m: %latest_edition_folder_path%

rem ★作業ディレクトリをmドライブにする
m:

rem ★NASから最新版のファイルを取得する。
rem  /d:コピー元の日付がコピー先を新しい場合のみコピーする
rem  /y:コピー先にファイルが存在s売る場合上書き云々の確認メッセージを表示せず強制上書きする
rem xcopyでよく聞かれる受け側のファイルですか、またディレクトリですかの回避のため、先頭に「echo f | 」を記載
echo f | xcopy /d /y %file_name% %local_folder_path%\%file_name%

rem ★ローカル端末上に作成したNドライブのネットワークパスを削除する
net use m: /d /y

exit
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?