« 「Normal.dotmはWordを使った他の作業で編集されています。」 | トップページ | サーバー上のExcelのファイルがショートカットになった »

2015年9月 5日 (土)

バッチファイルでファイルの有無を確認

%タイトル%するには
if exist ファイルパス ...
と書くのだが、ファイルパスに空白文字が含まれている場合はそのまま素直に書いてはうまくいかない。existの使い方を検索して見つかった上位のページは、たいてい空白文字を含まないファイルパスを想定している。みんな、空白が入ったパスは使わないのかな?

今回はWindowsのプログラムフォルダ下の中のとあるフォルダの有無をバッチファイルの中で確認したかったのだけど、これは普通のコマンドプロンプトでの操作のようにダブルクォーテーションで括ってやればよい。フォルダのチェックは、パスの最後に"."をつけて行う。

Microsoft Office 2010以前のExcelのLibraryフォルダに自作のアドインを投げ込むのに作ったバッチファイルが次のもの。ムダに環境変数を使っているけど。Office 2013以降はインストールパスの命名ルールが変わっているようなのと、職場ではまだ使っていないので対象外。また、使用するOfficeは32bit版。1つのバッチファイルでWindows 7の32bit版と64bit版、Office 2010, 2007, 2003, XP, 2000あたりまで対応させようというもの。

set X64P=C:\Program Files (x86)\Microsoft Office\OFFICE
set X86P=C:\Program Files\Microsoft Office\OFFICE
set LIBP=\Library
set VER=14

C:
if "%ProgramFiles(x86)%"=="" goto X86

:X64
set PMOP=%X64P%
goto CHKVER

:X86
set PMOP=%X86P%

:CHKVER
if "%VER%"=="9" GOTO O2000
if exist "%PMOP%%VER%%LIBP%\." goto CHGDR
set /a VER=%VER%-1
goto CHKVER

:O2000
set VER=

:CHGDR
cd "%PMOP%%VER%%LIBP%"

:XCP
xcopy /c /y /d "\\Server\コピー元ファイルのパス\自作アドイン.xla" c:

|

« 「Normal.dotmはWordを使った他の作業で編集されています。」 | トップページ | サーバー上のExcelのファイルがショートカットになった »

Windows」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: バッチファイルでファイルの有無を確認:

« 「Normal.dotmはWordを使った他の作業で編集されています。」 | トップページ | サーバー上のExcelのファイルがショートカットになった »