---
# System prepended metadata

title: '`dotnet-script` がインストールされていない場合にのみインストールするバッチ 2024-07-21'
tags: [dotnet-script, bat, dotnet cli, インストール]

---

---
lang: ja-jp
breaks: true
---
# `dotnet-script` がインストールされていない場合にのみインストールするバッチ 2024-07-21

## `dotnet tool list -g` で事前にチェックしてからインストールを行う。

```bat=
rem utf-8に変更
chcp 65001
@echo off

SET LOG_FILE_TITLE=%~n0
SET LOG_NAME_DATE_=%date:/=%
SET LOG_NAME_DATE=%LOG_NAME_DATE_:~0,8%
SET LOG_NAME_TIME=%time: =0%
SET LOG_NAME_TIME_H=%LOG_NAME_TIME:~0,2%
SET LOG_NAME_TIME_M=%LOG_NAME_TIME:~3,2%
SET LOG_NAME_TIME_S=%LOG_NAME_TIME:~6,2%
SET LOG_FILE_NAME=%LOG_FILE_TITLE%_%LOG_NAME_DATE%_%LOG_NAME_TIME_H%%LOG_NAME_TIME_M%%LOG_NAME_TIME_S%.log

type nul > %LOG_FILE_NAME%

set "TOOL_NAME=dotnet-script"
dotnet tool list -g | findstr /C:"%TOOL_NAME%" >> %LOG_FILE_NAME% 2>&1
if ERRORLEVEL 1 (
    echo Installing %TOOL_NAME%... >> %LOG_FILE_NAME% 2>&1
    dotnet tool install -g %TOOL_NAME% >> %LOG_FILE_NAME% 2>&1
) else (
    echo %TOOL_NAME% is already installed. >> %LOG_FILE_NAME% 2>&1
)
if %ERRORLEVEL% gtr 0 (goto :error)

・・・
if %ERRORLEVEL% gtr 0 (goto :error)

echo 正常に完了しました。
TIMEOUT /T 5
exit

:error
echo エラー発生！！
pause
exit
```

###### tags: `dotnet-script` `インストール` `bat` `dotnet cli`
