【Wine活用講座】WineでLinuxからでもWindowsのcmdを実行してbatファイルを動かす方法


※ 当ページには【広告/PR】を含む場合があります。
2023/11/10
【Wine活用講座】Debian LinuxでもAviUtlをインストールして使いたい!
WineでLinuxからでもWindowsのcmdを実行してbatファイルを動かす方法

Windows向けのbatファイルで書かれた配布スクリプトを扱いたくても、手元にLinuxパソコンしかない場合は「動かすのは無理そうだからやめておこう」と諦めてしまうことのほうが多いと思います。

ですが、batファイルの内容がさほど複雑ではない場合、
「Wine」でLinux上でも動かせるかもしれません。

もしかしたら徒労に終わるかもしれませんが、WineでWindowsのbatが実行できるなら、Linux使いとしては手間も省けて作業も楽になります。

今回はWineでWindow/cmdを利用する手順を簡潔に紹介してみます。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

Wineからcmdを実行させる

WineはLinux上でWindowsアプリケーションを走らせるための互換レイヤーアプリケーションです。

参考|Wine

各Linuxディストーションへのインストール方法は公式ページにお任せして、ここでは既にインストール済みという体で話を進めていきます。

なお、手元の環境では

            
            $ wine --version
wine-8.0.2
        
をインストールしています。

Windowsのターミナルは伝統的に
cmd(コマンドプロンプト)が使われていましたが、現在はpowershell(パワーシェル)が標準になっています。

あまり使う機会もないでしょうが、Wineでは標準アプリケーションとして
cmdのほうをそのまま利用することが可能です。

            
            $ wine cmd
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
MESA-INTEL: warning: Haswell Vulkan support is incomplete
Microsoft Windows 6.3.9600

Z:\home\user>
        
もうこれでWindowsのコマンドプロンプトが基本的に動かす準備が整いました。

あとはbatファイルを叩けば、Windowsと使い方が変わらないのですが、たとえば以下のスクリプトで試してみましょう。

            
            @echo off
IF 1==1 (
    echo ホゲホゲ☆
)
        
でこれを1.batで保存して、Wine内のcmdから呼び出してみます。

            
            Z:\home\user> 1.bat
繝帙ご繝帙ご笘・
        
おそらく文字化けしています。

Linuxのファイルはデフォルトで
UTF-8ですが、Windowsでは正しく表示されないので改めて文字エンコーディングをShift-JISで保存し直してみます。

            
            Z:\home\user> 1.bat
ホゲホゲ☆
        
今度は日本語が表示されるようになりました。

現状、コンソール表示では対応していないユニコード文字(日本語)がある他は問題なく動いていそうです。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

まとめ

今回はWineに付属しているcmdアプリからbatファイルを実行する方法を短く紹介してみました。

普段はWindows持ちでないLinuxユーザーにとっては、この方法を覚えておくといざというときに役に立つかもしれません。

機会があれば、別の記事にて、このWine版cmdコマンドの使い道を紹介していきたいと考えております。
記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。

合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集