web-dev-qa-db-ja.com

Windows 7コマンドプロンプト:コマンドラインからバッチスクリプトを実行するにはどうすればよいですか?

私はWindows7を使用していますが、問題はコンソール(cmd.exe)からこのファイルを実行することです。

W:\software\projects\myproject\build\msvc\build.bat

ファイルを含むフォルダーに手動で移動し、次のコマンドシーケンスを使用してそこから実行すると、機能します。

W:\>cd software
W:\software>cd projects
W:\software\projects>cd myproject
W:\software\projects\myproject>cd build
W:\software\projects\myproject\build>cd msvc
W:\software\projects\myproject\build\msvc>build.bat

ただし、次のいずれかの方法でルートディレクトリからファイルを実行しようとすると、次のようになります。

W:\>software\projects\myproject\build\msvc\build.bat
W:\>call software\projects\myproject\build\msvc\build.bat
W:\>@call software\projects\myproject\build\msvc\build.bat
W:\>"software\projects\myproject\build\msvc\build.bat"
W:\>call "software\projects\myproject\build\msvc\build.bat"
W:\>@call "software\projects\myproject\build\msvc\build.bat"

次のエラーメッセージが表示されます。

The system cannot find the path specified.

私がWindowsを使用していたときにファイルを実行するためにファイルを含むフォルダーに移動する必要はなかったと確信していますXP(もちろん間違っているかもしれませんが))これは明らかにWindows 7に当てはまるようです。または何か不足していますか?

9
Dragonion

あなたは正しいです。実行する前にバッチスクリプトフォルダに移動する必要はありません。エラー「指定されたパスが見つかりません。」ほとんどの場合、バッチファイル内の何かが原因です。

追加してみてください

cd W:\software\projects\myproject\build\msvc
w:

または単一のコマンドで(James Kの提案に従って、ありがとう!)

cd /d W:\software\projects\myproject\build\msvc

もう少し検索して、この一般的な解決策を見つけました:

cd /d %~dp0

バッチファイルの先頭で、作業ディレクトリをスクリプトのディレクトリに設定して、これが原因であるかどうかを確認します。

W:\からファイルを実行する場合、ここでコマンドが実行されます(作業ディレクトリ)。スクリプトがこの場所で使用するファイルを見つけられない可能性が高いです。

3
konqi