• ベストアンサー

startコマンドで動作を指定する方法はありますか

start hogehge.ext とかやると、拡張子 ext に関連づけられたアプリケーションで hogehoge.ext を開くことができます。 ここでさらに、start コマンドを用いて、拡張子 ext に関連づけられたコンテキストメニューの中の特定のアクションを選択して起動することは可能でしょうか? 具体的には、inno setup のスクリプトを、Makefile から start コマンド一発でコンパイルしたい、というのが動機です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

軽く調べた範囲では…無理そうでしたね。 startコマンドで実行できるのは「関連付けされた拡張子の規定のアクション」までのようで。 >具体的には、inno setup のスクリプトを、Makefile から start コマンド一発でコンパイルしたい、というのが動機です。 とすると、レジストリの HKEY_CLASSES_ROOT\InnoSetupScriptFile\shell\Compile\command に記述されているコマンドを実行する必要があります。 が、startコマンドでアクションとして「Compile」を指定する方法がありません。 # コンテキストメニューだと「Compile」になっている。 拡張子.issの規定のアクションを「Compile」に変更すれば、startコマンドでコンパイル可能でしょう。 ただし、そういう変更を行った場合は、当然エクスプローラでダブルクリック(選択してEnterなど)の挙動もそちらに変更されます。 つまり…環境依存になります。 # Inno Setup Compilerが起動して編集画面になる環境と、コンパイルが実行される環境でmakeの結果が異なることになります。 私は、Inno Setupが標準の場所にインストールされている。 という前提の元、環境変数にインストール先を設定するようにして…  start /b /wait /min "" "%inno5dir%\Compil32.exe" /cc ほにゃらら.iss みたいにして対処しています。 # 64Bit環境の場合も考慮して、実行前に環境変数inno5dirをいぢるようにしています。

astronaut
質問者

お礼

ありがとうございます コンパイル専用の実行ファイルがあったとは・・・調べ方が甘かったです。 大変参考になりました。

その他の回答 (1)

回答No.1

http://support.microsoft.com/kb/126410/ja h ttp://nofx2.txt-nifty.com/it/2011/03/start-a299.html 上記を参考にすればできる…のかもしれません。

関連するQ&A

  • GNU make終了時にコマンドを実行できますか?

    GNU make 4.x(4.1か4.2)を使ってMakefileを実行したとき、そのMakefileが成功しても失敗しても、make終了時に何かを実行させる方法は用意されていますか? "make && コマンド"や"make || コマンド"などの複合コマンドのほか、シェルスクリプト内で"make"とコマンドを連続実行するという方法は除きます。あくまでも"make"単体で実行するものとします。 実際そういうことをしたいというのではなく、"make"実行後、Makefile中で生成した一部の中間ファイルが勝手に削除されるという謎の現象が発生しており、その原因を探りたいです。 Makefile中の実行コマンドにわざとエラーを起こすようなコマンドを入れてみても(例えば存在しない"hogehoge"のようなコマンド)、そのエラーが表示された直後に、"rm XXXX YYYY"(XXXXとYYYYはMakefile内部で生成したファイル名)のようなコマンドが表示されて、実際にそのファイルは生成しているはずなのに消えてしまっています。 上記のエラーを起こすコマンドの前に"ls -l ディレクトリ名"を実行するようにして、エラーを起こす直前に中間ファイルが存在することは確認できています。しかしその後、勝手に"rm"が実行されてそのファイルは消されてしまいます。 よろしくお願いします。

  • フォルダオプションの既定で開くアプリの指定について

    フォルダオプションのファイルの種類で拡張子ごとに既定のアクションを設定できると思うのですが設定しても違うアプリケーションで開いてしまいます。 詳しく説明しますとicoの拡張子を指定したアプリケーションで開くようアクションに登録し既定にすることができるんですが(テキストが太文字になっているので)実際ダブルクリックで開くとWindowsのペイントで開いてしまいます。 フォルダオプションのときはペイントで開くという項目がアクション欄にはなくて自分が指定したものしかありません。 右クリックのメニューには編集が太文字になっておりこれでペイントが起動します・・・。その下に自分の指定したアプリケーションがあるのですがその他に印刷とプレビューの項目もあります。 まず自分の指定したアプリケーションを既定にしたいのと フォルダオプションの関連付けの時にはなにもないのに右クリックのメニューに他のものが出るのですがどうしてなのでしょうか? 分かりづらい説明かと思いますがご理解でき対応策が分かる方、回答お待ちしております。

  • windows98で拡張子とプログラムの関連付けがおかしいです。

    こんばんは。お世話になります。lzhファイルを開こうと思い、クリックしたら「このプログラムは有効なwin32アプリケーションではありません」とダイアログボックスが出てしまいます。コンテキストメニューの送るからLhazを選ぶとうまく解凍できますが、lzhファイルをダブルクリックして、開けるようにしたいのです。 拡張子と関連アプリケーションの関連付けはどうやるんですか?Windows98はほとんど使ったことがないので、わかりません。だれかおしえてください。よろしくおねがいします。

  • accessのマクロで、PDFファイルを開くコマンドを作ることはできますか?

    Accessのマクロで、「PDFファイルを開く」というアクションを登録 したいのですが、”アプリケーションの実行”で、コマンドラインにacrobatのexeファイルパスの後ろに、開きたいファイルのフルパスを記入したところ、目的のファイルを開くことができました。しかし、PDFファイルの表示ソフトが、PCによって、acrobat、adobe reader、acrobat readerなどいろいろあるため、アプリケーションの実行ファイル(*.exe)の指定をせずに、関連付けられたアプリケーションで指定したファイルを開くようにしたいのですが、どうすればよいでしょうか?よろしくお願いします。

  • ActivePerlで#!/usr/bin/が無効

    WindowsXPにActivePerl(5.16.3.1603)をインストールして、 コマンドラインに「perl script.scr」と入力して スクリプトファイルは実行できるのですが、 スクリプトファイルの1行目に「#!/usr/bin/perl」を記述して、 コマンドラインに「script.scr」と入力して実行しようとすると、 「C:\・・・\script.scrは有効なWin32アプリケーションではありません。」 というメッセージが表示されて正しく実行できません。 perl.exeのあるフォルダをC:\usr\binフォルダにして、 1行目を #!/usr/bin/perl #!C:/usr/bin/perl #!C:\usr\bin\perl などいろいろ試してみましたが、どれも 前述のメッセージが表示されて実行できませんでした。 コマンドラインに「script.scr」と入力するだけで 実行することができるようにするには どのようにすればいいのでしょうか。 script.scrの拡張子scrをplなどに変更して この拡張子のファイルに対してperl.exeに関連付けることにより script.plだけでも実行できるようにはなりますが 拡張子.scrではこの関連付けができませんので #!/usr/bin/perl等を使用する方法で解決したいです。 ジャンクションとかApacheなどが全く分かりませんので これらを使わずに簡単にできる方法がありましたら教えてください。 (なお使っても分かりやすい手順があれば可です) よろしくお願いします。

    • ベストアンサー
    • Perl
  • [バッチファイル]一致した次の単語を出力したい

    コマンドの実行結果の標準出力をリダイレクトしてテキストファイルに書き出しました。 このファイルを読み取り、マッチした文字列の次の単語を出力したいのですが、 標準のDOSコマンド(あるいはコマンドラインで動作するフリーソフトを使用するのでも構いません。※perlなどのスクリプトや、複雑で習得の難しいもの、コマンドプロンプト拡張などは無しでお願いします)で実現するにはどうすれば良いでしょうか? テキストファイルの内容例 hogehoge: abcdefg この場合、"hogehoge:"で検索し、abcdefgを出力したいです。

  • 削除できない!!

    怪しげなファイルをダウンロードしてしまいました。 やっぱり怖いから削除しようと思って、そのフォルダを削除しようとすると、「別のプログラムがこのフォルダを開いているので操作を完了できません」というメッセージが出て、削除できません。 何も立ち上げてないのにこのメッセージが出て、削除できないんです。 開いてしまったのが悪かったのでしょうか? ちなみにそのフォルダの中身は ・windowsコマンドスクリプト(←これを開いてしまいました。開いたらコマンドスクリプトの画面が出てきました。) ・アプリケーション拡張 ・テキストドキュメント だったのですが、アプリケーション拡張ファイルは開いていません。 今のところウイルスバスターでウイルス検索したところ何も問題なかったのですが、削除できないので怖いです。 詳しい方よろしくお願いします!

  • 分子動力学計算ソフトtinkerのコンパイルについて。

    分子動力学計算ソフトtinkerのコンパイルについて。  現在、計算化学の研究で分子動力学計算ソフトの"tinker"を用いて研究をしようとしています。 tinkerのフォルダーを自分のパソコン(Windows)にダウンロードし、リモートサーバー(Linux)上でコンパイルし、実行できるようにしたいのですが、コンパイルのやり方が分かりません。 自分で調べてみると、tinkerのフォルダーにはMakefileというスクリプトファイルのようなファイルがあり、その中を書き換えたりする必要もあるみたいなのですが、その辺も分かりません。 どなたか分かる方が居ましたら教えてください。Linuxでの具体的なコマンド操作から示して頂ければ幸いです。

  • Ruby on Rails ; model validationが動作しない等

    昨日からRoRで開発している初心者です。 移行するとアプリケーションが動かなくなりました。 開発機でruby on rails + lighttpd + fastcgi にて rails xxx ruby script/generate scaffold yyy ・・・ と開発を進めていました。 そして同様構成の本番機に移行したところ、validateが動かないなど 様々な不具合がでています。 移行方法  本番機でrailsコマンドを実行  xxx以下のファイルを全てコピー ファイルをコピーするだけだと動作しないのでしょうか? 不具合:  1:時々 unknown action がでる  2:varidate(model/...)が動作しない 対処? 1:script/generateコマンドの発行が必要? ただしい移行方法をどなたか教えていただけませんか?

  • コンパイルの方法を教えてください。

    現在Windows環境にてPoco(C++ Portable Components)を使用するため、環境の構築を行っていますが、Pocoのコンパイル方法がわからず途方にくれています。 環境はWindowsXPにMinGW3.4.5をインストールし、EclipseCDTから自作のC++ソースはコンパイルできる環境となっています。 MinGWはC:\MinGWにインストール済みで、Pathも通していますので、 C:\PocoのFoundationのMakefileを実行すると、 makefile:9: /build/rules/global: No such file or directory makefile:44: /build/rules/lib: No such file or directory mingw32-make.exe: *** No rule to make target `/build/rules/lib'. Stop. とエラーが出てしまいます。 環境変数が足りないのかと思い、Dos窓で set POCO_BASE=C:/poco set POCO_BUILD=C:/poco set POCO_CONFIG=MinGW とたたいた後に再度実行すると、 process_begin: CreateProcess(NULL, uname, ...) failed. 'C:/poco/build/script/projname' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 process_begin: CreateProcess(NULL, cat C:/poco/components, ...) failed. process_begin: CreateProcess(NULL, cat C:/poco/libversion, ...) failed. "** Creating dependency info for" src/pcre_xclass.c mkdir -p C:/poco//.dep/MinGW/ia32 コマンドの構文が誤っています。 "** Creating dependency info for" src/pcre_fullinfo.c mkdir -p C:/poco//.dep/MinGW/ia32 ・・・ と大量のエラーが出てしまいます。 C/C++を触るのは初めてで、構文等は理解できても、環境周りが全くわからないため、どうやったらコンパイルできるのか教えてください。