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
чтобы я мог прикрепить его к панели задач.