sh.exe 阻止 windows cmd 移动命令工作
sh.exe is preventing windows cmd move command from working
我是 运行 一个名为 ACSLX
的旧应用程序。它试图调用 DOS 移动命令,但是因为 sh.exe
在我的路径中,所以我收到错误。 sh.exe
是 Git
和 RTools
的一部分,我已经安装了这两个。如您所见,它只是尝试移动文件,但失败了。我怎样才能防止这种情况发生?这是我尝试构建 "Spring" 示例项目时 ACSLX 的控制台输出。
##### 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.
我通过创建一个 bat 文件 ACSLXLauncher.bat
解决了这个问题,该文件在启动 acslx.exe:
之前从路径中删除了 sh.exe
位置
Can I set an environment variable for an application using a shortcut in Windows?
Remove unwanted path name from %path% variable via batch
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.4\bin;=%
start "" "C:\acslX\acslx.exe"
我还使用 cmd /c C:\..\ACSLXLauncher.bat
创建了 运行 这个 bat 文件的快捷方式,以便我可以将它固定到任务栏。
另一种选择是准备好一些 .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 路径以避免任何冲突。
在您需要执行 ACSLX 会话的任何 CMD 中,键入 'senv':该会话将有一个简化的 PATH,其中只有您需要的内容。
无需重命名任何内容。
在该会话之外,您通常使用的当前 PATH 保持不变。
OP 添加:
, I am not working in the command line, I am working in the ACSLX GUI, I don't think I can modify the scripts it is running in the background.
对此我的回答是:使用正确的路径启动 ACSLX GUI。
那就是。
问题是Windows中没有外部命令"move"。如果你查看你的 C:\Windows\system32 目录(或者你的 Windows 版本中的任何名称),你会发现很多熟悉的 Windows 命令,例如 XCOPY、HELP、SUBST等等,但没有移动。难怪,那个sh找不到。
您可以在 DOS 提示符下使用 MOVE 的原因是,这是 CMD.EXE 的内部命令。因此,您必须调用 CMD 才能使用 MOVE,如下所示(未经测试!):
CMD /C MOVE "C:\acslX\Examples\MODELD~1\SPRING~1\SPRING~2\spring.xml" ".\spring.ail"
我是 运行 一个名为 ACSLX
的旧应用程序。它试图调用 DOS 移动命令,但是因为 sh.exe
在我的路径中,所以我收到错误。 sh.exe
是 Git
和 RTools
的一部分,我已经安装了这两个。如您所见,它只是尝试移动文件,但失败了。我怎样才能防止这种情况发生?这是我尝试构建 "Spring" 示例项目时 ACSLX 的控制台输出。
##### 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.
我通过创建一个 bat 文件 ACSLXLauncher.bat
解决了这个问题,该文件在启动 acslx.exe:
sh.exe
位置
Can I set an environment variable for an application using a shortcut in Windows?
Remove unwanted path name from %path% variable via batch
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.4\bin;=%
start "" "C:\acslX\acslx.exe"
我还使用 cmd /c C:\..\ACSLXLauncher.bat
创建了 运行 这个 bat 文件的快捷方式,以便我可以将它固定到任务栏。
另一种选择是准备好一些 .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 路径以避免任何冲突。
在您需要执行 ACSLX 会话的任何 CMD 中,键入 'senv':该会话将有一个简化的 PATH,其中只有您需要的内容。
无需重命名任何内容。
在该会话之外,您通常使用的当前 PATH 保持不变。
OP 添加:
, I am not working in the command line, I am working in the ACSLX GUI, I don't think I can modify the scripts it is running in the background.
对此我的回答是:使用正确的路径启动 ACSLX GUI。
那就是
问题是Windows中没有外部命令"move"。如果你查看你的 C:\Windows\system32 目录(或者你的 Windows 版本中的任何名称),你会发现很多熟悉的 Windows 命令,例如 XCOPY、HELP、SUBST等等,但没有移动。难怪,那个sh找不到。
您可以在 DOS 提示符下使用 MOVE 的原因是,这是 CMD.EXE 的内部命令。因此,您必须调用 CMD 才能使用 MOVE,如下所示(未经测试!):
CMD /C MOVE "C:\acslX\Examples\MODELD~1\SPRING~1\SPRING~2\spring.xml" ".\spring.ail"