IF EXIST возвращает false для существующего файла, когда пакет выполняется агентом TeamCity - PullRequest
0 голосов
/ 28 ноября 2018

В npm.cmd файле есть следующие строки:

ECHO %NPM_PREFIX_NPM_CLI_JS%

IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  ECHO FILE EXISTS
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Когда это выполнено ECHO печатается: C:\Windows\system32\config\systemprofile\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js.Я проверил файл - он существует.Когда я запускаю сам пакет как пользователь SYSTEM - он тоже работает.Но когда команда npm выполняется агентом TeamCity, он думает, что файл npm-cli.js не существует.

Я проверил право доступа к файлу и папке, и все в порядке.Более того, когда я удаляю IF и оставляю только SET командный узел, который можно найти, заканчиваю выполнять файл.

Для тестирования я написал скрипт, который проверяет, существуют ли все папки.Запустите его из теста TeamCity и покажите, что он считает, что папки до C:\Windows\system32\config\systemprofile\AppData\Roaming существуют, а все после не существует.

Выполнение команды DIR /A из шага командной строки TeamCity, напечатано:

03/02/2017  10:31 AM    <DIR>          .
03/02/2017  10:31 AM    <DIR>          ..
10/26/2015  01:33 PM    <DIR>          Microsoft
03/02/2017  10:31 AM    <DIR>          NuGet
               0 File(s)              0 bytes
               4 Dir(s)  122,662,453,248 bytes free

Хотя в действительности в результате не отображается 3 папки.

В чем может быть причина?

...