質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Q&A

解決済

2回答

1574閲覧

CMDとPowerShellのコマンドの違い

Por

総合スコア40

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

0グッド

0クリップ

投稿2021/05/23 07:25

編集2021/05/23 07:50

いつもありがとうございます.今回もよろしくおねがいします.

環境

windows10 home
cmd
powershell

達成したいこと

PowerShellからアプリケーションを起動したい
アプリケーションはMetaTraderと呼ばれるものになります.
参考, MetaTraderの起動

CMDでできたこと

オプションなし

start "" ".\path\to\terminal.exe"

オプションあり

start "" ".\path\to\terminal.exe" /config:C:\path\to\configfile.ini
start "" ".\path\to\terminal.exe" /config /login /profile ← 引数が必要なオプションに引数を入れなくても起動できた

PowerShellで試したこと

オプションなし

start "" ".\path\to\terminal.exe" ← 起動できなかった
start ".\path\to\terminal.exe" ← 起動できた

オプションあり

start ".\path\to\terminal.exe" /portable ← 引数が不要なportableオプションなら起動できる

start "" ".\path\to\terminal.exe" /config:C:\path\to\configfile.ini ← 起動できなかった

powershell

1Start-Process : A positional parameter cannot be found that accepts argument 2'/config:C:\Users\Administrator\Downloads...\configfile.ini'. 3At line:1 char:1 4+ start ".\5\20705\terminal64.exe" /portable /config:"C:\Users\Administrator\Downl ... 5+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException 7 + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand 8

start "" ".\path\to\terminal.exe" /config /login /profile ← 引数が必要なオプションだと起動ができないようである

start "" ".\path\to\terminal.exe" /config:"C:\path\to\configfile.ini" ← 起動できなかった

powershell

1Start-Process : A positional parameter cannot be found that accepts argument 2'/config:C:\Users\Administrator\Downloads...\configfile.ini'. 3At line:1 char:1 4+ start ".\5\20705\terminal64.exe" /portable /config:"C:\Users\Administrator\Downl ... 5+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException 7 + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand 8

お聞きしたいこと

PowerShellからアプリケーションを起動するため,どのように書き直せばよいかお聞きしたいです.
様々サイトを参考にさせていただき試しましたが,すこし行き詰まってしまいました.
もしご存知でしたら,ご教授いただけると幸いです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/05/23 07:31

えーと、しつもんはなんでしょうか
Por

2021/05/23 07:36

ありがとうございます. すこし修正いたしますので,またなにかありましたらご指摘ください.
guest

回答2

0

hope_mucciさんの回答の通り、startはCMD.EXEの組み込みコマンドだからです。

CMD.EXE以外から、CMD.EXEの組み込みコマンドを実行するには、cmd.exeを起動します。

PowerShell

1cmd /c start "" ".\path\to\terminal.exe" /config:C:\path\to\configfile.ini

まあ、PowerShellを使うならPowerShellのコマンドを使うのが良いですが。

投稿2021/05/23 08:34

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

cmdには「組み込みコマンド」と「外部コマンド」があります。
外部コマンドの実体は普通のexeファイルなので、PowerShellでも使用できますが、cmdの組み込みコマンドはcmdでしか使えません。
組み込みコマンドの一覧は検索すれば解説サイトが沢山出てきます。例えば以下のサイトとか。

http://itref.fc2web.com/windows/cmd/

PowerShellには一部のcmd組み込みコマンドの名前をエイリアス(別名)にしてPS独自のコマンドを実行する仕組みもあります。
例えばDIRはPowerShell側ではChild-Itemの別名として扱われています。
START もPowershell側でエイリアス(Start-Processのエイリアス)がありますが、cmdのstartとPowerShellのProcess-Startでは引数の構成が異なります。エイリアスは単純に名前を付けかえただけなので完全に従来のcmdの代替手段とはなりません。

引数の構成は、cmd側では start /? ,PowerShell側で help startと先頭にhelpをつければ表示されます。
双方の引数の違いをチェックすれば解決方法は見えるのではないかと思います。

結論

cmd, powershell双方で動かすにしても、引数の最初の ""は不要。
(cmdをstartで起動する以外ではほぼtitleなど不要では)

投稿2021/05/23 07:46

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Por

2021/05/23 07:55

ご回答ありがとうございます. 認識すべき点ですが 外部コマンドはcmd, ps双方で共通で使える cmd組み込みコマンドはcmdでしか使えない cmd組み込みコマンドの中でも例外的に別名にしてpsで使えるようにしてあり,`DIR`もその一つ `start`はそうではない,psの`start`は`Start-Process`である,よってcmdの`start`とは異なる `help start`でエイリアスについて調べられる これらの点ということでしょうか(もし間違えてましたらご指摘ください) ありがとうございます.Start-Processの引数について調べてみます.
Por

2021/05/23 08:16

こちらのアドバイスのおかげで,無事解決できただけでなく ・cmdとの基本的な違い ・`start`でcmdと同じことができてしまったために,psの`start`の意味を考えていなかった ・エイリアスのもととなるコマンドがどう動作するか こちらも合わせてわかりました. 大変お世話になりました.
otn

2021/05/23 08:37

> cmd, powershell双方で動かすにしても、引数の最初の ""は不要。 cmdのstartコマンドは、起動するコマンドのパスが引用符で囲まれている場合は、その前に""が必要です。でないと、コマンドがウィンドウタイトルとみなされる。 コマンドが引用符で囲まれていなければ不要ですが。
hope_mucci

2021/05/23 08:59

本当ですね。startコマンドにてスイッチのついていない最初の引数が引用符つきだとtitle扱いになるのですね。 cmdのstartは何かしらのタイトルをつけておいた方が安全ということですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問