sh.exe препятствует работе команды windows cmd move

Я запускаю старое приложение под названием ACSLX, Он пытается вызвать команду перемещения DOS, но потому что sh.exe на моем пути, я получаю ошибку. sh.exe это часть Git а также RTools, оба из которых я установил. Как видите, он просто пытается переместить файл, но это не удается. Как я могу предотвратить это? Это вывод консоли ACSLX, когда я пытаюсь построить пример проекта "Spring".

##### Build starting...

C:\acslX\ShSysTime.exe
Current System Time 15:05:02
"C:\acslX\atrans.exe" -lic_path "C:\acslX\license.lic;C:\acslX\*.lic" -no_xsl -no_compile -no_link "C:\acslX\Examples\MODELD~1\SPRING~1\SPRING~2\spring.csl"
ACSL Translator
Copyright 2002-2015, AEgis Technologies Group, Inc.
All rights reserved.
--------------------------------------------------------
The license path is now: C:\acslX\license.lic;C:\acslX\*.lic
INFO: TRANSLATOR: Starting Translation...
INFO: ANALYZER: Sorting sections using DFS algorithm.
INFO: ANALYZER: Sorting performed in 0.001000 seconds.
INFO:  Translator completed successfully 
===================================

move "C:\acslX\Examples\MODELD~1\SPRING~1\SPRING~2\spring.xml" ".\spring.ail"
/Rtools/bin/sh: move: command not found
C:\acslX\mingw32\bin\make.exe: *** [spring.ail] Error 127
##### Build failed.

3 ответа

Решение

Другой вариант - подготовить небольшой.bat для установки PATH в любое время:

Назовите это senv.bat и поместите его в ваш текущий%PATH%

В этом:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set PATH=C:\acslX;%PATH%
... other PATHs you might need

Просто не добавляйте в него путь GitHub или R path, чтобы избежать конфликта.

В любой CMD, где вам нужно сделать сеанс ACSLX, введите "senv": этот сеанс будет иметь упрощенную PATH только с тем, что вам нужно.
Не нужно ничего переименовывать.

Вне этого сеанса ваш обычный текущий PATH остается неизменным.


ОП добавляет:

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

На что я ответил: ACSLX GUI должен быть запущен с правильным PATH.
Вот что реализует ответ ОП.

Проблема в том, что в Windows нет внешней команды "переместить". Если вы посмотрите на каталог C:\Windows\system32 (или как он называется в вашей версии Windows), вы найдете много знакомых команд Windows, таких как XCOPY, HELP, SUBST и т. Д., Но без MOVE. Неудивительно, что он не может его найти.

Причина, по которой вы можете использовать MOVE из командной строки DOS, заключается в том, что это внутренняя команда CMD.EXE. Следовательно, вы должны вызвать CMD, чтобы использовать MOVE, что-то вроде этого (не проверено!):

CMD /C MOVE "C:\acslX\Examples\MODELD~1\SPRING~1\SPRING~2\spring.xml" ".\spring.ail"

Я решил это, создав файл bat ACSLXLauncher.bat который удалил sh.exe местоположения из пути до запуска acslx.exe:

Можно ли установить переменную среды для приложения с помощью ярлыка в Windows?

Удалите нежелательный путь из переменной%path% через пакет

rem this is necessary because sh.exe in the path prevents ACSLX from working
@echo off
set PATH=%PATH:C:\Program Files\Git\bin;=%
set PATH=%PATH:C:\RTools\3.4\bin;=%
start "" "C:\acslX\acslx.exe"

Я также создал ярлык для запуска этого файла bat с помощью cmd /c C:\..\ACSLXLauncher.bat чтобы я мог прикрепить его к панели задач.

Другие вопросы по тегам