カレントフォルダの取得

結論

  • カレントフォルダは環境変数pwd.(ピリオド)のどちらかで取得できる.
  • pwdはcygwin形式,.(ピリオド)はWindows形式.
  • パス区切り文字の変更はpathconvertタスクを使う.

環境

  • Windows 10 Pro
  • cygwin 2.9.0
  • ant 1.10.1

手順

カレントフォルダの取得は環境変数pwd.(ピリオド)の2通りがある.cygwinの場合,環境変更pwdにはcygwin形式のパスが,.(ピリオド)の場合はWindows形式のパスが入る.

<!-- build.xml -->
<project name="sample" default="run">
  <property environment="env"/>

  <target name="run">
    <property name="path.1" location="${env.PWD}"/> <!-- 環境変数PWDはcygwin形式 -->
    <echo message="${path.1}"/>

    <property name="path.2" location="."/> <!-- .(ピリオド)はWindows形式 -->
    <echo message="${path.2}"/>
  </target>
</project>

実行結果

$ ant
Buildfile: C:\Users\foo\Desktop\ant.test\build.xml

run:
     [echo] C:\cygdrive\c\Users\foo\Desktop\ant.test
     [echo] C:\Users\foo\Desktop\ant.test

BUILD SUCCESSFUL
Total time: 0 seconds

区切り文字をバックスラッシュからスラッシュに変えるにはpathconvertタスクを使う.

<!-- build.xml -->
<project name="sample" default="run">
  <property environment="env"/>

  <target name="run">
    <property name="path.1" location="${env.PWD}"/> <!-- 環境変数PWDはcygwin形式 -->
    <echo message="${path.1}"/>

    <property name="path.2" location="."/> <!-- .(ピリオド)はWindows形式 -->
    <echo message="${path.2}"/>

    <pathconvert property="path.3" targetos="unix">
      <path>
        <pathelement location="${env.PWD}"/>
      </path>
    </pathconvert>
    <echo message="${path.3}"/>

    <pathconvert property="path.4" targetos="unix">
      <path>
        <pathelement location="."/>
      </path>
    </pathconvert>
    <echo message="${path.4}"/>

  </target>
</project>

実行結果

$ ant
Buildfile: C:\Users\foo\Desktop\ant.test\build.xml

run:
     [echo] C:\cygdrive\c\Users\foo\Desktop\ant.test
     [echo] C:\Users\foo\Desktop\ant.test
     [echo] C:/cygdrive/c/Users/foo/Desktop/ant.test
     [echo] C:/Users/foo/Desktop/ant.test

BUILD SUCCESSFUL
Total time: 0 seconds