■ソースコード
bat
1set script_name=%~n0 2call :Logger %script_name% ← 3 4rem ログ出力関数の定義 5:Logger 6rem 引数の設定 7set script_name=%1 8 9rem 実行日付の取得 10set date=%date:~-10,4%%date:~-5,2%%date:~-2,2% 11echo %date% 12 13 14set starttime=%date:~-10,4%-%date:~-5,2%-%date:~-2,2% %time:~0,2%:%time:~3,2%:%time:~6,2% 15rem ログファイル名の設定 16set script_infra_log_file=%script_infra_log_dir%%script_name%_%date%.log 17rem ログファイルへの出力 18echo %starttime% >> %script_infra_log_file%
■実現したいこと
サブルーチンを呼び出す際の引数に、変数を指定したい
■疑問点
サブルーチンを呼び出す際の引数は、固定値しか無理なのでしょうか?
それとも、なにか処理を加えれば可能なのでしょうか?
ググっても固定値が指定されている記事のみで、エラーの原因が分からない状況です。
サブルーチンの引数に変数を指定してエラーが出るコードを提示しよう。
その時はその出ているエラーも一緒に提示してください
申し訳ございません。setlocalを記述すると解決しました。
追加で質問です。
set script_infra_log_file=%script_infra_log_dir%%script_name%_%date%.logの値をechoしたところ、以下のようにスクリプト名と「_ 」の間に謎の空白があるのですが、原因分かりますでしょうか。
なお、%script_infra_log_dir%の値はログ上では展開されております。
%script_infra_log_dir%win_test\スクリプト名 _20220523.log
その変数に空白が入っている、んじゃないでしょうか。
空白は分かりづらいですが、よくチェックしてみよう

回答1件
あなたの回答
tips
プレビュー