PowerShell, environment variables, command invocation, and spaces

Fil Maj's Avatar

Fil Maj

13 Jul, 2017 04:37 PM

I have tried so many different ways of invoking a command (the Android SDK manager) in my appveyor.yml. The location of the Android SDK that ships with the VS2017 image is under Program Files - with a damned space in it. And it is causing me to rip my hair out.

Full appveyor.yml code in its current form: https://github.com/filmaj/cordova-android/blob/ci-native-tests/appveyor.yml

You can see my frustrating via a series of latest commits in this pull request I am working on: https://github.com/apache/cordova-android/pull/392

I need to accept multiple Android licenses as part of using the SDK manager, so I use this line:

  - ps: for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | cmd /c '"%UPDATE_SDK%"'

Basically trying to emulate typing "Y ENTER" 30 times.

The %UPDATE_SDK% environment variable looks like this, according to Appveyor output (I echo out the env var near the start of the appveyor.yml file):

C:\Program Files (x86)\Android\android-sdk\tools\bin\sdkmanager.bat --update

The error I'm getting is this:

for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | cmd /c '"%UPDATE_SDK%"'
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Please help!

  1. Support Staff 1 Posted by Ilya Finkelshte... on 14 Jul, 2017 11:06 AM

    Ilya Finkelshteyn's Avatar
  2. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:18 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac