Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Lenovo system interface foundationがインストールできない

More than 3 years have passed since last update.

Lenovo ThinkPadにSystem Interface Foundationがインストールできない。
インストーラはインストールに成功したというがコントロールパネルのプログラムと機能には現れない。

インストールが完了したところで、インストーラを終了する前に%TEMP%\is-PH9SO.tmpを見ると、ServiceTotal_inst.cmdというファイルがあったので調べてみた。

%TEMP%\is-PH9SO.tmp\ServiceTotal_inst.cmdの一部
::Begin to install all components
::
set Key="HKLM\System\CurrentControlSet\Control\Nls\Language"
for /F "tokens=3" %%a in ('reg query %Key% ^| find /i "Default"') do set /a 

findというコマンドを実行しているが、このPCにはcygwinを入れているので、C:\WINDOWS\system32\find.exeではなく、cygwinのfindが実行され、結果的にこのスクリプトがうまく動いていない。

一時的に環境変数PATHからcygwinを消してインストーラを実行したら、正しくインストールできた。

いろいろな環境で実行されるプログラムでは、勝手な前提をせず、内部でPATH変数を設定するなりフルパスで書くなりする必要があるという例。

参考:
シェルスクリプト :: シェルスクリプトのセキュリティーを高める
シェルスクリプトを書くときに気をつける9箇条
シェルスクリプトを書く時に気をつけている事など

styzo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away