後述するバッチの構文で以下の部分の
"!export_pass!!DIRNAME:*workspace=!"
で
!DIRNAME:*workspace=!
の箇所は何のために行っているのかどのような意味があるのかがわからないです。
If existsの意味は分かるのですがこの箇所だけ何をしてるのか調べてもわかりませんでした。
分かる方がいましたらご教授願います。
また、このような記述に関して何か参考資料がありましたら教えていただきたいです。
以上です。
宜しくお願いいたします。
rem 指定先にディレクトリ(サブも含む)を作成。 rem ディレクトリ存在チェック if exist "!export_pass!\!DIRNAME:*workspace\=!" ( echo !export_pass!\!DIRNAME:*workspace\=!が存在するためスキップします。 ) else ( mkdir !export_pass!\!DIRNAME:*workspace\=! echo !export_pass!\!DIRNAME:*workspace\=!を作成しました。 )
以下に全体ソースを添付いたします。
環境設定.bat
rem エクスポート先のディレクトリ名を記載してください。 set export_pass=*** rem workspaceパスを記載してください。 set workspace_pass=***
export_file.bat
1@echo off 2setlocal EnableDelayedExpansion 3 4call 環境設定.bat 5 6 7echo %date% %time% エクスポートを開始します。 >> export_file.log 8 9rem 外部ファイルからエクスポートしたいファイル名を一行ずつ取得。 10for /f %%a in (file_list.txt) do ( 11 12 rem ファイル名を代入。 13 set FILENAME=%%a 14 15 rem 対象ファイルのフルパスを取得。 16 for /f "usebackq delims=" %%i in (`where /R !workspace_pass! !FILENAME!`) do ( 17 18 rem フルパスを代入。 19 set DIRNAME_FULL=%%i 20 21 rem フルパスに「WebContent\WEB-INF\classes」が含まれていないかチェック。 22 echo !DIRNAME_FULL! | find "WebContent\WEB-INF\classes" >NUL 23 if not ERRORLEVEL 1 ( 24 rem 25 ) else ( 26 rem フルパスからファイル名を除外し、ディレクトリ名を取得。 27 set DIRNAME=%%~pi 28 29 rem 指定先にディレクトリ(サブも含む)を作成。 30 rem ディレクトリ存在チェック 31 if exist "!export_pass!\!DIRNAME:*workspace\=!" ( 32 echo !export_pass!\!DIRNAME:*workspace\=!が存在するためスキップします。 33 ) else ( 34 mkdir !export_pass!\!DIRNAME:*workspace\=! 35 echo !export_pass!\!DIRNAME:*workspace\=!を作成しました。 36 ) 37 38 rem 対象ファイルを指定先ディレクトリにコピー。 39 copy !DIRNAME_FULL! !export_pass!\!DIRNAME:*workspace\=! 40 echo 対象ファイル:!FILENAME! 41 42 rem ログ出力用 43 echo !export_pass!\!DIRNAME:*workspace\=!!FILENAME! >> export_file.log 44 45 ) 46 ) 47) 48 49echo %date% %time% エクスポートが終了しました。 >> export_file.log 50pause 51

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/14 09:52