実現したいこと
バッチファイルを実行することで、下記の処理を一括で実行したいです。
- exeファイルをフォルダに対して実行
- 1.のフォルダに対しattrib +S を実行し、フォルダ属性を変更
前提
Windows10で動作するよう.batを作成しています。
バッチファイルで行いたい処理は下記の通りです。
- バッチファイルの引数にフォルダを指定することで、このフォルダに対しexeファイル(フォルダアイコンの変更を行うプログラム)を実行する。
- 当該フォルダに対し、フォルダ属性を変更する処理を行う。
発生している問題・エラーメッセージ
ローカルドライブに格納されているフォルダでは問題なく処理できますが、ネットワークドライブに格納されているフォルダに対しての処理がうまくいきません。
具体的にはフォルダ属性を変更する処理のみ反映されず困っています。
尚、ネットワークドライブ上でも「exeファイル実行」と「フォルダ属性の変更」の処理をそれぞれ別のバッチファイルで実行したときはなぜかうまくいきます。
REM @echo off としたときには下記の通り属性変更が効いているように主著くされます。
該当のソースコード
REM @echo off set FP_HOME=C:\<EXEファイルが格納されいるフォルダ> path %FP_HOME%;%PATH% SET TARGET=%~dp1%~n1 call <EXEファイル>.exe /Folder=%TARGET% /Icon=%FP_HOME%\Icons\Pack_01\01.ico %~d1 chdir cd %~dp1 attrib %TARGET% attrib +S %TARGET% attrib %TARGET% pause exit /b
実行した結果の抜粋は下記の通りです。フォルダの属性変更はうまくいっているようにみえます。
attrib %TARGET% attrib +s %TARGET% attrib %TARGET% X:\□□\test>attrib X:\□□\test\folder01 X:\□□\test\folder01 X:\□□\test>attrib +S X:\□□\test\folder01 X:\□□\test>attrib X:\□□\test\folder01 S X:\□□\test\folder01
試したこと
上記の処理を行ったあとに、コマンドプロンプトにてフォルダ属性を確認したところ、Sがついていませんでした。
コマンドプロンプトでの結果
X:\□□\test>attrib X:\□□\test\folder01 X:\□□\test\folder01
「EXEファイルの実行」と「フォルダ属性の変更」とを別々のバッチファイルで行うとうまくいきました。
folder_change.bat
REM @echo off set FP_HOME=C:\<EXEファイルが格納されいるフォルダ> path %FP_HOME%;%PATH% SET TARGET=%~dp1%~n1 call <EXEファイル>.exe /Folder=%TARGET% /Icon=%FP_HOME%\Icons\Pack_01\01.ico exit /b
attrib.bat
REM @echo off SET TARGET=%~dp1%~n1 attrib %TARGET% attrib +s %TARGET% attrib %TARGET% exit /b
補足情報(FW/ツールのバージョンなど)
OSのバーション:Windows 10 Pro 22H2
以上、アドバイスなど頂けたら幸いです。
回答1件