SKY-OUTPUT

メーカー子会社勤務のSEがガジェットレビューや仕事で学んだこと、ライフスタイルについて書くブログ。システム開発関係の記事では丁寧に解説していきます。最近はバッチばかり作ってる。

VisualStudioのオフラインインストーラーを作ってみる

概要

近年のインストーラーはインターネット接続が前提 となっている。そのため、オフライン環境でアプリのインストールを行うとなるとちょっとめんどくさいことになる。 アプリによってはオフラインインストーラーがHP上で用意されてたりもするが、VisualStudioではそれがない。 オフラインインストーラーを作りたければ、インターネット接続が可能な環境で自作でオフラインインストーラーを作る必要がある。

docs.microsoft.com

VisualStudioをオフラインインストールする手順

  1. インターネット接続可能なマシンでVisualStudioのインストーラーをDLする
  2. DLしたインストーラに対し、コマンドを実行する
  3. オフラインインストーラーをインストールしたいマシンにコピーし実行

ソースコード

今回は.NET デスクトップ開発とC++ デスクトップ開発をインストールします。

@echo off
setlocal

rem オフラインインストーラーが作られる場所
set createPath=c:\vs_community
rem オフラインインストーラーの言語(日本語)
set language=ja-JP

rem  .NET デスクトップ開発
set dotNetDesktopDev=Microsoft.VisualStudio.Workload.NetWeb
rem  C++ デスクトップ開発
set cppDesktopDev=Microsoft.VisualStudio.Workload.NativeDesktop

rem オフラインインストーラー作成
vs_community.exe --layout %createPath% --add %dotNetDesktopDev% --add %cppDesktopDev% --includeOptional --lang %language%
exit

変更履歴

  • 20190908:初版

指定した日付を持つファイルを削除するバッチ

概要

今回は ファイル名に8日前の日付を持つログファイルを削除するバッチ を作成しました。 doshbatch(Windowsコマンド)では日付の計算をゴリ押さないとできないため、powershellのコマンドを呼び出し対象日付を取得しました。

ソースコード

※削除対象のログファイルは、 log_yyyyMMdd.log とする。

@echo off
setlocal
rem 初版

rem 削除対象日付を取得
FOR /F "usebackq" %%a IN (`powershell [DateTime]::Today.AddDays"("-8")".ToString"("'yyyyMMdd'")"`) DO SET targetday=%%a
rem echo %targetday%
rem 削除対象ファイル名を設定
set targetFile=log_%targetday%.log
rem echo %targetFile%
rem 削除対象のファイルのフルパスを設定
set targetFilePath=C:\work\%targetFile%
rem echo %targetFilePath%
rem ファイルを削除する
del %targetFilePath%

exit

学べたこと

powershellでの実行結果を格納するには癖があること。 こんな書き方だとコマンドそのものが変数に格納されてしまう。

※この書き方はダメです

SET targetday=powershell [DateTime]::Today.AddDays"("-8")".ToString"("'yyyyMMdd'")

なので、下記書き方をする。

FOR /F "usebackq" %%a IN (`powershell [DateTime]::Today.AddDays"("-8")".ToString"("'yyyyMMdd'")"`) DO SET targetday=%%a

変更履歴

  • 20190908:初版

GoogleChromeをシークレットモードで開くコマンド

需要がないと思いますが、GoogleChromeを常にシークレットモードで開くバッチを作ってみました。

バッチでなくても、Chromeのショートカットにコマンドを追加するだけでもできます。(てか、そっちの方が良いと思います。)

利用シーンといえば、第三者に履歴を残したくないときとかに使うべきでしょう。

例えば、共有PCで個人アカウントでログインするときなどでしょうか...。(意外と人のアカウントがIDの候補とかに出てくることがあるんですよね。)

 

ソースコード

@echo off
setlocal

rem chrome.exeが保管されているディレクトリに移動
cd C:\Program Files (x86)\Google\Chrome\Application
rem chromeをシークレットモードで起動
start chrome.exe --incognito

 ※インストール先がデフォルトではない場合、CDコマンドの遷移先を変更してください。

ショートカット

ショートカットのリンク先に「--incognito」を加えるだけです。

f:id:SKY-BLOG:20190522234317p:plain

 

リモートデスクトップ接続バッチ

プロジェクトによっては複数のサーバーにリモートデスクトップ接続することがあると思います。

私が経験したプロジェクトでは、多くのサーバーに接続し、必要なファイルをダウンロードしてきて、新旧比較を行ったりしていました。

そこで、接続するリモートデスクトップ接続を選択して自動で接続できるバッチを作ってみました。

 

ソースコード

@echo off
setlocal

:start
echo リモートデスクトップに接続します。
echo サーバー1号機:1
echo サーバー2号機:2
echo サーバー3号機:3

set /p p="> "
If %p%==1 (
  SET SERVER=XXX
  SET USERNAME=XXX
  SET PASSWORD=XXX
) else if %p%==2 (
  SET SERVER=XXX
  SET USERNAME=XXX
  SET PASSWORD=XXX
) else if %p%==3 (
  SET SERVER=XXX
  SET USERNAME=XXX
  SET PASSWORD=XXX
) else (
  echo 指定されたキーは存在しません。
  pause
  cls
  goto start
)

echo リモートデスクトップの接続を開始します。
Cmdkey /generic:TERMSRV/%SERVER% /user:%USERNAME% /pass:%PASSWORD%
Start mstsc /v:%SERVER%
Timeout 2
Cmdkey /delete:TERMSRV/%SERVER%
pause
exit

 

解説

事前にリモートデスクトップ接続したいサーバー(PC)の情報をバッチファイルに組み込んで置き、バッチファイルを起動し、指定した番号を入力するとリモートデスクトップ接続できる内容となっております。指定したキーと一致しない場合は、再び入力状態に戻ります。

各変数については以下のとおりです。

・SERVERで接続したいサーバーのIPアドレスまたはホスト名を設定する。

・USERNAMEで接続したいユーザーのユーザ名を設定する。

・PASSWORDで接続したいユーザーのパスワードを設定する。

下記コマンドでリモートデスクトップの接続情報を設定する。

Cmdkey /generic:TERMSRV/%SERVER% /user:%USERNAME% /pass:%PASSWORD%

下記コマンドでリモートデスクトップの接続を行う。

Start mstsc /v:%SERVER%

 

更新履歴

2019年5月19日:初版

環境変数作成バッチ・環境変数Pathにパス追加バッチ

利用シーンがなかなか見当たらないですが、環境変数を作成するまたはPathに値を追加するバッチを作りました。

今のプロジェクトでJavaを使用するバッチを提供したところ、一人だけJAVA_HOME未設定の人が居て、バッチの実行がうまくいかなかったことがありました。

そこでJAVA_HOMEもバッチ内で作る処理を入れておけばエラーもなく実行できたと思い、このバッチを作るに至ったわけです。  

ちなみにこのバッチでエラーが出ました。

www.sky-blog.work

 

ソースコード

@echo off
setlocal

rem 環境変数名
set ENVIRONMENT_VARIABLE=Work
rem 環境変数にセットするパス
set NEW_PATH=C:\Work echo 環境変数の追加方法を選択してください echo 登録する環境変数:%ENVIRONMENT_VARIABLE% echo 登録する環境変数の値:%NEW_PATH% echo ユーザーに新規作成 :1 echo ユーザーのPathに追加:2 echo システムに新規作成 :3 echo システムのPathに追加:4 set /p p="> " If %p%==1 ( SETX %ENVIRONMENT_VARIABLE% "%NEW_PATH%" ) else if %p%==2 ( SETX Path "%Path%;%NEW_PATH%" ) else if %p%==3 ( SETX /M %ENVIRONMENT_VARIABLE% "%NEW_PATH%" ) else if %p%==4 ( SETX /M Path "%Path%;%NEW_PATH%" ) PAUSE

 

解説

ENVIRONMENT_VARIABLEには新規作成したい環境変数名を入れます。

NEW_PATHには環境変数のパスを入れます。

管理者権限で実行する必要があります。

環境変数を作成するコマンドは、SETXコマンドです。このままだとユーザーの環境変数として追加されます。

/Mを追加すると、システムに追加となります。

環境変数Pathにも追加できれば良いなと思い、選択肢2と4を用意しました。

処理内容として、環境変数Pathに、Pathの値と;と新規追加したいパスを合体させているだけです。

 

更新履歴

2019年5月18日:初版

zipを解凍するバッチ

今の仕事でダウンロードしたDLLを解凍する作業があります。

過去の記事でファイルのダウンロードを自動化出来たので、DLLを解凍する作業も自動化しました。

ファイルダウンロードバッチと組み合わせることで、DLLのダウンロードから解凍までを自動化出来ます。

www.sky-blog.work

今回作ったバッチはJAVAを使用し、環境変数でJAVA_HOMEが設定してあることが前提となります。

出来ればWindows標準のコマンドだけで解凍を実現したかったので、他に良い処理が見つかればソースコードを修正し、記事を更新します。

 

ソースコード

@echo off
setlocal
echo 本バッチは環境変数にJAVA_HOMEを設定している必要があります。 rem 解凍したいzipファイルを指定する set ZIP_FILE=%CD%\temp.zip rem zipを解凍する set JAVA_HOME jar -xvf %ZIP_FILE% pause exit

※サンプルとして、カレントディレクトリ配下にあるtemp.zipという名のzipファイルを解凍する処理内容となっております。 

 

解説

Javaをインストールしていないと使用できません。

SET JAVA_HOMEのコマンドでJavaのライブラリコマンドを使用できるようになります。このコマンドを実施しないと、後のjarコマンドでエラーとなります。

jarコマンドに-xvfオプションを付けることで解凍が出来るようになります。

jarコマンドの第一引数には、解凍したいファイルを指定します。

変数ZIP_FILEの内容を変更することで解凍できるzipファイルを変更することが出来ます。

 

更新履歴

2019年5月6日:初版

ファイルダウンロードバッチ

今の仕事で、ビルドされたDLLファイルをダウンロードする作業があります。

毎回、サイトにアクセスしてダウンロードするのがめんどくさいと思っていたので、この作業もバッチで自動化することにしました。

これで作業の時間短縮にも繋がるし、タスクスケジューラと組み合わせれば作業を完全に自動化できます。

 

ソースコード 

@echo off
setlocal

rem
bitsadminのパラメーターを設定 set JOB_NAME=DowloadFileBatch
rem ファイル名を指定
set FILE_NAME
=nikkei_stock_average_daily_jp.csv rem ダウンロード先を指定
set DL_FILE_PATH=https://indexes.nikkei.co.jp/nkave/historical/%FILE_NAME% rem 保存先を指定
set SAVE_FILE_PATH=%CD%\%FILE_NAME% rem ダウンロード実行 echo %FILE_NAME%をダウンロードします。
bitsadmin /transfer %JOB_NAME% %DL_FILE_PATH% %SAVE_FILE_PATH%
pause exit

 ※サンプルとして日経プロファイルから日経平均株価の日次データのCSVファイルをダウンロードすることにします。

 

indexes.nikkei.co.jp 

 

ソースコード(Javaコマンドバージョン)

@echo off
setlocal

rem ダウンロード実行
set JAVA_HOME
curl -O https://indexes.nikkei.co.jp/nkave/historical/nikkei_stock_average_daily_jp.csv

pause
exit

 ※Javaをインストールしていること、環境変数にJAVA_HOMEが設定されていることが前提となります。

f:id:SKY-BLOG:20190508204236p:plain

▲実行画面 

 

解説

bitsadminコマンドに/transfer オプションを付け、引数で指定したファイルをバックグラウンドでダウンロードしています。

引数として、ジョブ名ダウンロードするファイルのパス保存先(ファイル名含む)を指定する必要があります。

ジョブ名については特に指定はありませんが、他のジョブと名称が一致すると恐らく実行に失敗するので他のジョブと被らない名前を付けた方が良いと思います。

 

また、端末によるとは思いますが、私が使用しているノートPCの充電が20%未満の時、ダウンロードしてくれなくなりました。

いつでもダウンロードしてほしいので、Java版のソースコードを使用しています。

 

更新履歴

2019年5月6日:初版

2019年5月8日:ソースコード(Javaコマンドバージョン)を追加

SnippingToolが進化しました。

エビデンス取得や手順書作成で使用しているSnipping ToolというWindowsアクセサリにあるアプリケーションがあります。Windows10のバージョン1809より、アクションセンターから起動できるようになりました。もちろん、現行のSnipping Toolはいつも通り利用できます。今回は新しくなったSnipping Toolの使い方について紹介します。

※本記事でクリックするボタン、確認する項目は赤枠で囲んでおります。

Snipping Toolとは

画面の一部または全体をキャプチャするWindows標準でインストールされているアプリケーションです。

f:id:SKY-BLOG:20190219225311p:plain

▲スタート > Windows アクセサリ > Snipping Tool で起動できます。

起動すると下記画面が表示され、[新規作成]ボタンを押すと、スナップショット取得モードになります。

[モード]ボタンを押すと、画面の一部または全体をキャプチャするか変更できます。

[遅延]ボタンを押すと、スナップショット取得モードに移行するまでの時間を0秒から5秒まで選択できます。コンテキストメニューをスクリーンショットに移したい場合に使用します。

※遅延モードはWindows8.1以前のOSにはありません。

f:id:SKY-BLOG:20190219225441p:plain

バージョン確認手順

Windows10のバージョン1809未満では、新しいSnipping Toolは使用できません。下記手順で現在使用しているWindows10のバージョンを確認することが出来ます。

f:id:SKY-BLOG:20190219224814p:plain

▲手順:Windowsの設定 > システム > バージョン情報

Windowsの仕様のバージョンの箇所に現在のバージョンが示されます。バージョンが1809未満の方はWindowsアップデートを実施すると使用できるようになります。

f:id:SKY-BLOG:20190219224836p:plain

新しいSnipping Toolの起動方法

[画面領域切り取り]を押します。

下記ショートカットコマンドを入力し、アクションセンターを開きます。

f:id:SKY-BLOG:20190219230550p:plain

▲ショートカットコマンド(Windows + A )でアクションセンターを表示できます。

画面中央上部には小さなツールバーが表示される

これで新しいSnipping Toolの起動は完了です。

f:id:SKY-BLOG:20190219231007p:plain

各アイコンの説明

一番左のアイコンが、四角形の領域切り取りです。

右隣りの楕円系に+が書かれたアイコンが、自由形式の領域切り取りです。

更に右隣りの画面全体を表す様なアイコンが、全画面領域切り取りです。

一番右のアイコンは閉じるボタンで、Snipping Toolが終了します。

使い方

スナップショットを取得するとアクションセンターより通知が来ます。

f:id:SKY-BLOG:20190219232312p:plain

アクションセンターを開くと、クリップボードに画像が保存された旨のメッセージと実際に取得したスナップショットが表示されます。

f:id:SKY-BLOG:20190219232457p:plain

これをクリックすると[切り取り&スケッチ]の画面が表示されます。

f:id:SKY-BLOG:20190219232554p:plain

[切り取り&スケッチ]の画面では、取得したスナップショットを保存したり落書きすることが出来ます。スナップショットを画像として保存したい場合は必ずこの画面で保存しないと保存されません。

保存するとファイル名にスクリーンショットを取った日時情報が入ります。現行のSnipping Toolではファイル名が常に同じなため、ファイル名を変更しないと上書き保存されてしまいます。新しいSnipping Toolではそこが解消されたのも大きな変化の1つだと思いました。

有線接続・無線接続を切替できるバッチ

職場でLANケーブルを着脱することが多く、アプリ等で簡単に切り替えられたらいいなと考えていました。そこで、バッチで有線接続と無線接続を切り替えられるネットワークアダプタ切替バッチを作成しました。ネットワークアダプタには優先度があります。有線(LANケーブル)と無線(Wi-Fi)の両方のネットワークに接続された状態の場合、有線接続を選択する設定がされております。これにより、LANケーブルを刺したままWi-Fi経由でネットワークを使用することが出来ません。そこでネットワークアダプタ切替バッチにより無理やり使用したい接続に変更します。

このバッチの強み

状況によってネットワークアダプタの優先度は変わるので、優先度に関係なく接続状態を変更できるのが本バッチの強みです。

このバッチの弱み

ネットワークアダプタを無効状態のままにする恐れがある

ネットワークアダプタを切り替えるのでなく、有効状態を変更しています。バッチを実行した後、全てのネットワークアダプタを有効状態にせずコマンドプロンプトを閉じてしまうと、ネットワークアダプタを無効状態のままにしてしまう恐れがあります。

管理者権限で実行する必要がある

ネットワークアダプタの有効状態を変更するには管理者権限が必要です。管理者権限で本バッチを実行しないと処理の実行に失敗します。

端末によってネットワークアダプタの名称が違うことがある

端末によってネットワークアダプタの名称が異なる場合があります。その場合はソースコードを修正し、使用するマシンや状況によってカスタマイズする必要があります。

ネットワークアダプタの確認手順

アダプターの設定の変更でネットワークアダプタを確認することが出来ます。

f:id:SKY-BLOG:20190214232848p:image

▲コントロール パネルネットワークとインターネットネットワーク接続 または コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更 で表示できます。

ソースコード

@echo off
setlocal

echo 使用するアダプタを選択してください。
echo イーサーネット:1
echo Wi-Fi         :2
echo すべて有効    :3
set /p p="> " If %p%==1 ( echo イーサネットを有効状態にします。 netsh interface set interface name="イーサネット" admin=enabled netsh interface set interface name="Wi-Fi" admin=disable ) else if %p%==2 ( echo Wi-Fiを有効状態にします。 netsh interface set interface name="イーサネット" admin=disable netsh interface set interface name="Wi-Fi" admin=enabled ) else if %p%==3 ( echo 全アダプタ有効状態にします。 netsh interface set interface name="イーサネット" admin=enabled netsh interface set interface name="Wi-Fi" admin=enabled ) pause exit

※マシン環境や状況によって選択肢とif文内の処理を変更・追加してください。

 

バッチ実行画面

バッチを管理者権限で実行すると、下記ウィンドウが表示されます。ここで使用するネットワークアダプタの数値を入力しEnterを入力することで、ネットワークアダプタの状態が切り替わります。

f:id:SKY-BLOG:20190214234743p:plain

ネットワークアダプタの優先順位を変えたいだけの場合

そもそも有線と無線の優先度を変えるだけで良いよって方もいると思います。有線と無線の優先度の変更方法は下記のとおりです。

1.ネットワークアダプタのプロパティを表示する

f:id:SKY-BLOG:20190214232848p:image 

▲優先度を変更したいネットワークアダプタを選択状態にし、右クリックしプロパティを選択します。

※私のPCの場合PC本体の無線LANと外付けUSB接続の無線LAN(5GHz帯対応)がある為、Wi-Fiが2つあります。

2.TCP/IPv4のプロパティを表示する

f:id:SKY-BLOG:20190226224936p:plain

▲インターネットプロトコルバージョン4(TCP/IPv4)を選択した状態でプロパティボタンを押します。

3.TCP/IP詳細設定画面を表示する

f:id:SKY-BLOG:20190226225102p:plain

▲全般タブを表示し、詳細設定ボタンを押します。

4.自動メトリックのチェックを外す

f:id:SKY-BLOG:20190226225224p:plain

5.インターフェイスメトリックに値を入力しOKボタンを押す

インターフェイスメトリックに入力できる値は1から100までです。値が小さいほど優先順位が高くなります。

f:id:SKY-BLOG:20190226225336p:plain

これで優先順位の変更は完了です。

エディターについて

今まではテキストエディター(メモ帳やサクラエディタ)で開発を行っていました。

最近では、VisualBatと呼ばれるフリーのバッチ開発用のエディターを使用しています。

f:id:SKY-BLOG:20190505201146p:plain

更新履歴

2019年2月14日:初版

2019年2月26日:「ネットワークアダプタの優先順位を変えたいだけの場合」を追記

2019年5月5日:「エディターについて」を追記

2019年5月6日:ソースコードにシンタックスハイライトを有効化

2019年5月13日:ソースコードにsetlocalの命令を追加

SQL Server Management Studio (SSMS) インストール手順

新人にSQL Server Management Studio(SSMS)のセットアップをお願いした際、DB(SQL Server)に繋がらないと質問を受けました。新人のPCを確認してみると、SSMSのみインストールされた状態で、SQL Serverがインストールされていませんでした。これじゃ接続できませんし、接続先がそもそも存在していません。(私の説明がそもそも悪いのですが...)良い機会だと思い、SQL ServerをインストールしSSMSを使えるようにするまでの手順をまとめてみました。

※本記事でクリックするボタン、確認する項目は赤枠で囲んでおります。

SSMSとSQL Serverの関係

SSMSとは、SQL ServerをGUIでデータベース(SQL Server)を管理するためのツールです。SSMSをインストールすることでコマンドでなくマウスを使ってSQL Serverを操作できます。 図で説明するとこんな感じです。

f:id:SKY-BLOG:20190207224513p:plain

▲SQL ServerとSSMSの関係

SSMSだけでは、本当にやりたいSQL Serverの操作はできないわけです。そのため、SSMSをインストールしても何も出来ません。まずはSQL Serverをインストールしなければなりません。

SQL Serverのダウンロード手順

下記URLにアクセスし、インストーラーをダウンロードしてきます。

https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads

無料版のExpressをインストールします。下の画像の赤枠で囲んだ[今すぐダウンロード]をクリックします。

f:id:SKY-BLOG:20190207225206p:plain

Expressの[今すぐダウンロード]をクリックするとSQLServerのインストーラーであるSQLServer2017-SSEI-Expr.exeがダウンロードされます。

SQL Serverのインストール手順

SQLServer2017-SSEI-Expr.exeをダブルクリックします。

f:id:SKY-BLOG:20190207225355p:plain

[基本]をクリックします。

特に理由がなければ基本を選択します。

f:id:SKY-BLOG:20190207225703p:plain

[同意する]をクリックします。

規約は念の為軽くでも良いので読んでおきましょう。

f:id:SKY-BLOG:20190207225828p:plain

[インストール]をクリックします。

※インストールの場所は理由がない限り変更する必要はありません。

f:id:SKY-BLOG:20190207230058p:plain

ダウンロードが終わるまで待ちましょう。

f:id:SKY-BLOG:20190207230153p:plain

インストールが終わるのを待ちましょう。ダウンロードとインストールで私のマシンだと10分程度かかりました。(実施時刻:平日23時ごろ)

f:id:SKY-BLOG:20190207230819p:plain

これでSQL Serverのインストールは完了です。

f:id:SKY-BLOG:20190207233737p:plain

次にSSMSのインストールとなります。

SSMSのインストール手順

[SSMSのインストール]をクリックする。

または下記URLよりアクセスしSSMSのインストーラをダウンロードします。

https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017

f:id:SKY-BLOG:20190207233704p:plain

[SQL Server Management Studio 17.9.1 のダウンロード] をクリックします。

約800MBのインストーラをダウンロードします。

※バージョンによってリンクの名称は変化します。

f:id:SKY-BLOG:20190207232755p:plain

[SSMS-Setup-JPN.exe]をダブルクリックします。

f:id:SKY-BLOG:20190207234027p:plain

[インストール]をクリックします。

f:id:SKY-BLOG:20190207234145p:plain

インストールが完了するまで待ちます。

f:id:SKY-BLOG:20190207234300p:plain

だいたい5分くらいで終わります。

f:id:SKY-BLOG:20190207234324p:plain

これでSSMSのインストールは完了です。

f:id:SKY-BLOG:20190207234826p:plain

動作確認

SSMSを起動します。

f:id:SKY-BLOG:20190207235047p:plain

▲スタート > Microsoft SQL Server Tools 2017 > Microsoft  SQL Server Management Studio よりたどれます。

サーバーへ接続します。

サーバーの種類:データベースエンジン

サーバー名:localhost¥SQLEXPRESS

認証:Windows認証

※サーバー名は.¥SQLEXPRESSでも表示可能です。

f:id:SKY-BLOG:20190208172226p:plain

SQL Serverの良いところはWindowsにログインしていればDBにログインできるところですね。

オブジェクトエクスプローラーが見れたら接続完了です。

f:id:SKY-BLOG:20190207235342p:plain

SQL Serverのインストールに失敗した場合

SQL Serverのインストールに失敗する人が多かったので、その対応方法を記述します。下記のような終了コード1638で失敗した場合は、あるプログラムをアンインストールすることで解決することが出来ます。

f:id:SKY-BLOG:20190207235421p:plain

プログラムと機能を表示します。

f:id:SKY-BLOG:20190207235529p:plain

▲コントロールパネル > プログラムのアンインストール で表示出来ます。

 Microsoft  Visual C++ 2017 Redistributable(x86)を2つアンインストールして、再度SQL Serverのインストールを試してみて下さい。これでインストールが出来るようになると思います。

ファイル名を一括置換するpowershellスクリプト

ファイル名を置き換えるpowershellスクリプトを作成しましたので紹介します。第一引数にディレクトリを指定し、その配下にあるファイルに対し、ファイル名に含まれるある文字列を指定した文字列で置換するスクリプトを作りました。簡単に言うと、ファイル名を置換するスクリプトです。引数に関しては実装で数を減らしたりもすることが出来るので、今回はあくまで一例としてみて下さい。置換対象、置換後の文字列は引数で指定しようとも思いましたが、私が普段使う用途だといちいち入力するのがめんどくさいので固定しています。仕事なのでディレクトリ内のファイル名を一括で置換するときの効率化にでもどうぞ。

スクリプトファイル名

ファイル名は自由に変更しても良いです。今回は下記ファイル名で手順の説明を進めさせていただきます。

ファイル名:Rename-Files.ps1

ディレクトリ:C:\work

f:id:SKY-BLOG:20190212002933p:plain

ソースコード

下記ソースコードをコピーして使用してください。

#置換対象の文字列
$before = "【置換前】"
#置換後の文字列
$after= "【置換後】"
# 1.ディレクトリ(第1引数で受け取る)
$dir = $Args[0]
# 2.ディレクトリのアイテム一覧を取得
$itemList = Get-ChildItem $dir
foreach($item in $itemList)
{
  # 3.ファイルの場合ファイル名を変更する
  if(-not $item.PSIsContainer)
  {
    Get-ChildItem $item.FullName | Rename-Item -NewName { $_.Name -replace $before,$after}
  }
}

▲変数beforeとafterは仕様用途によって変更して下さい。

実行方法

Windows PowerShellを表示する

f:id:SKY-BLOG:20190212001615p:plain

▲アドレスバーにpowershellと入力すると、Windows PowerShellのウィンドウを表示できます。

f:id:SKY-BLOG:20190212001853p:plain

Windows PowerShellが表示されます。

コマンドを入力しスクリプトを実行する

Windows PowerShellに下記コマンドを入力し、作成したスクリプトを実行します。

コマンド:.Rename-Files.ps1 "対象のディレクトリ"

※対象のディレクトリは、C:work est とする。

f:id:SKY-BLOG:20190212002007p:plain

powershellの実行が許可されていない環境の場合

powershellの実行が許可されていない環境の場合は下記コマンドを先頭に加え実行してください。このコマンドを加えることでpowershellスクリプトの実行が許可されます。

追加コマンド:powershell -ExecutionPolicy RemoteSigned -File 

コマンド:powershell -ExecutionPolicy RemoteSigned -File .Rename-Files.ps1 "対象のディレクトリ"

※対象のディレクトリは、C:work est とする。

f:id:SKY-BLOG:20190212002257p:plain

動作確認

作成したpowershellスクリプトが正しく動作しているか確認します。

実行前

f:id:SKY-BLOG:20190212002609p:plain

実行後

フォルダ内のファイル名が一括置換されました。

実行前:置換前

実行後:置換後

f:id:SKY-BLOG:20190212002719p:plain

 

Logicool MX Vertical アドバンスエルゴノミックマウス レビュー

以前から肩凝りに悩まされており、肩凝り軽減の目的でLogicoolから発売されたエルゴノミクスマウス、MX VERTICALを購入しました。半年ほど利用した感想は、肩凝り改善には確かに効果があって良かったです。ですが、マウスとしての使いやすさに関してはイマイチといった感じ。1万円越えと値段の高さを考えると高評価にはならないマウスでした。今回はそんなMX VERTICALアドバンスエルゴノミックマウスについて紹介します。

良かった点

肩凝り対策には効果抜群

筋緊張を10%軽減しているとアピールしている通り、マウスを右っていて肩に力が入りません。それにより肩が凝ることがありませんでした。普通のマウスでは、マウスを使っているとだんだん肩が上がってきてしまいます。普通のマウスではリラックスした体制で握ることが出来ないことが原因みたいです。MX VERTICALアドバンスエルゴノミックマウスでは自然な体制で握ることが出来るため、肩こりが起きずらい見たいです。

充電式であること

MX VERTICALアドバンスエルゴノミックマウスは充電式です。なので電池を買う必要がありません。充電についてはフル充電で最長4ヶ月、1分間のクイック充電で3時間使用可能なようです。充電ケーブルはUSB-TypeCです。最新のiPadやAndroid、ニンテンドースイッチで採用されている汎用的なケーブルです。これにより、わざわざMX VERTICALアドバンスエルゴノミックマウスだけのためにケーブルを用意する必要がなくなるかもしれません。

f:id:SKY-BLOG:20181115002649j:image

接続先を3つ登録できる

MX VERTICALアドバンスエルゴノミックマウスでは、接続先を3つ登録できます。私の場合は、MX VERTICALアドバンスエルゴノミックマウスを常に持ち歩き、会社で使用したり家で使用したりしています。ボタン1つですぐに接続先を変更できます。

残念な点

右利き専用

このマウスは右利き専用のマウスです。ですので、左利きの方では使用するのが難しいです。

吹っ飛ばしてしまうことが多い

また、通常のマウスと比べ高さがあります。高さがあることにより、キーボードから手を離しマウスや別のものを探そうとすると、MX VERTICALアドバンスエルゴノミックマウスを吹っ飛ばしてしまうことが多々あります。

左右スクロールがない

左右スクロールが無い為、エクセルやブラウザで左右のスクロールが出来ません。ボタン割り当てを変更すると可能にはなります。値段を考えると左右のスクロールくらい付けてほしかったです。

戻る進むボタンが押しづらい

デフォルトで設定されている戻るボタン、進むボタンですが、押しづらいです。押すと、マウスが前方向に移動してしまいます。構造上仕方ないですが、もう少しこうならない構造で作ってほしかったです。 

マウスの外観

エルゴノミクスというだけあって人間工学に基づいてデザインされた独特な外観です。

ブラックとスペースグレーで配色されています。

大きいですが思ったほど重くありません。意外と軽い。

f:id:SKY-BLOG:20181115002530j:image

以前使ってたMicrosoftのマウスとの比較です。MX VERTICALのほうがやはり大きい。

f:id:SKY-BLOG:20181115002607j:image

 

握り方

写真のとおりになります。親指の方にあるボタンを押すとマウスが押されてしまい、左クリックを押しそうになってしまいます。まだ発展途上感が否めません。また、右手専用で作られているため、左手でマウスを使用する方にはオススメできません。このマウスは右持ち専用のようです。

f:id:SKY-BLOG:20181115002626j:image

 

f:id:SKY-BLOG:20181115002617j:image

 

Logicool ワイヤレスキーボードK275 レビュー

良かった点

Unifyingレシーバー対応であること

Unifyingレシーバー対応により、他ロジクール製品を使っていればUSBレシーバーが1つで済みます。主にノートPCで使用している方であれば、USBが少ないのでこのUnifingレシーバー対応は非常に助かります。

 電池が2年持つこと

公式HPからの情報では電池が2年持つそうです。電池持ちが良いということは電池を意識しなくても良いことになると思います。 

感想

コスパ最強ワイヤレスキーボード。

一言でいうとこれですね。コスパ最強ということで、値段以上の価値はあります。

筆者的には配色が超好みです。Unifyingレシーバー対応なので、他のLogicool製ハードウェアを使用していたら、USBの使用箇所が1か所で済みます。

筆者はノートPCで本キーボードを使用しているので、USBの空きスロットの余裕がありません。ですが、このUnifyingレシーバーで、マウスとキーボードを1つのUSBでまとめることができ、非常に良かったとおもっています。

打鍵感(だけんかん)は、軽いタッチで文字が打てます。購入前に試し打ちしました。試し打ちできたとはいえ、PCにつなげていなかったので、どれくらいのタッチで文字が入力できるかはわかりませんでした。なので、購入後にキーが軽すぎることに気づきちょっと残念でした。

ショートカットキーも充実しており、メールボタン、電卓ボタン、音量調整ボタンは重宝します。これで、Outlookをタスクバーに常に表示せず済むようになりました。

ですが、電源のショートカットキーですが、これは危険です。作業中に誤って押すと、確認ダイアログもなしにスリープモードになります。

標準で電源ボタンを用意するなら、配置を改善してほしいと思いました。一応アプリをインストールすれば電源ではなく別の操作を割り当てられます。

f:id:SKY-BLOG:20181205174616j:image