回答編集履歴
2
追記
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
誤記訂正
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を作成し、それをコマンドプロンプト上で動かすという少々ヘンテコなことをしています。
|