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

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

新規登録して質問してみよう
ただいま回答率
85.48%
コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

3回答

13348閲覧

Windows10で使う%~dp0について

fulio

総合スコア15

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

2クリップ

投稿2017/11/08 10:26

初歩的な内容かもしれませんが教えてください。

Windows10において、通常ユーザーと管理者権限でバッチを起動させた際のコマンドの動きに差異がありました。

〜ここから〜
@echo off
cd /d %~dp0
echo %cd%
pause
〜ここまで〜

単純にバッチファイルが格納されているパスを返すだけの処理ですが、こちらをWindows10Pro64bitで動かしてやると、管理者権限で動かした時だけpauseがかからずに画面が閉じてしまいます。
手元にWindows7もあるので同じバッチを作って動かしてみましたが、管理者権限でも意図した動きになります。

Windows10では仕様が変わっているのでしょうか?

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

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

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

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

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

guest

回答3

0

遅くなりましたが自己解決しました。
pauseだけ(@echo offすら書いてない)記述したものだけをバッチファイル化してみましたが本文と同じ動作をしたので別の問題かと思って調査しました。
結論としては、どうやらバッチのファイルパスに"()"があったことが問題だったようでした。

通常実行と管理者実行での動作でファイルパスの扱いに違いがあるようで、それが"()"の記述に問題を与えているとのことです。実際は"("が問題のようですが。

リモートデスクトップの仕様なども考えたのですが、2つほど上の階層のバッチファイルを格納しているフォルダ作成者が自分ではなかったので完全に意識外からくる問題でした。

投稿2017/11/18 19:22

fulio

総合スコア15

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

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

0

ベストアンサー

Explorerからダブルクリックで起動するのじゃなくて、コマンドプロンプトからバッチファイル名を入れて起動するとどうなりますか?

投稿2017/11/08 17:29

otn

総合スコア84557

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

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

fulio

2017/11/09 00:22 編集

コメントありがとうございます こちらの手順で意図した動作になることが確認できました。 また、管理者として実行ではなく別ユーザーで実行コマンドから管理者ユーザーを入力してやることでも意図した動作になりました。 ユーザ絡みの問題かと思いますが、ひとまずこの手順で問題が解決したということでべストアンサーにさせていただきましたがツッコミがあればよろしくお願いします
guest

0

なんとwin10にcmdのバグがあるのかと思っていろいろ試してみたのですが……再現しないです。
もちろん私の環境もwin10pro64bitです。

試したこと
ダブルクリック:停止する
右クリックメニューから管理者権限で実行:停止する
cmdからファイルパスで実行:停止する
cmd(管理者)からファイルパスで実行:停止する
batをパスを通した場所においてcmdでファイル名で実行:停止する
batをパスを通した場所においてcmd(管理者)でファイル名で実行:停止する

おまけにpowershellで上記の各条件で実行:停止する

pauseしないのはwin10が原因じゃないかもしれません。

投稿2017/11/08 15:48

編集2017/11/08 15:51
oskbt

総合スコア1895

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

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

fulio

2017/11/09 00:16

様々な検証ありがとうございました。 こちらでも再度検証しましたが、やはりpauseがかからずに終了してしまいました。 確証はありませんが、端末ではなくてユーザ側に問題があるのかと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問