質問するログイン新規登録

回答編集履歴

2

追記

2017/06/21 08:53

投稿

KSwordOfHaste
KSwordOfHaste

スコア18406

answer CHANGED
@@ -1,3 +1,9 @@
1
+ otnさんのコメントから「WindowsではexecutableのCランタイムにより引数の解釈が変わる」という点がようやく実感できた気がします。以下の回答の前提は**cygwin64上のgcc 6.3.0で作成したexecutable**です。あまり一般的とはいえないかもですね。
2
+
3
+ to:質問者さん
4
+ どのコンパイラー(どのCランタイム)かにより違うということだと思います。それを明確にしたほうがよさそうですね。
5
+
6
+ ---
1
7
  `set path=%~dp // カレントディレクトリのパス(スペースが含まれる)`
2
8
 
3
9
  バッチファイルに%~dpと書いてやってみたのですがパス演算子が間違って使われてますというエラーになり、どうやったらこの記述が動くのか自分にはわかりませんでした。そこでバッチファイルが存在するディレクトリーなのだろうと解釈し`%~dp0`に置き換えてやってみました。(Windows10 64bit)

1

誤記訂正

2017/06/21 08:53

投稿

KSwordOfHaste
KSwordOfHaste

スコア18406

answer CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  `a.exe '%変数名%' arg2 arg3 ...`
8
8
 
9
- ただotnさのコメントを拝見すると、この方法が正しいかどうか少々自身ないです。コンパイラーのランタイムによってコマンドの引数の解釈が変わってくる(!)ということがどういう理屈か自分に分かっていないからです。自分はcygwin64のgccでa.exeを作成し、それをコマンドプロンプト上で動かすという少々ヘンテコなことをしています。
9
+ ただotnさのコメントを拝見すると、この方法が正しいかどうか少々自身ないです。コンパイラーのランタイムによってコマンドの引数の解釈が変わってくる(!)ということがどういう理屈か自分に分かっていないからです。自分はcygwin64のgccでa.exeを作成し、それをコマンドプロンプト上で動かすという少々ヘンテコなことをしています。