Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 从GVim调用批处理文件_Batch File_Vim - Fatal编程技术网

Batch file 从GVim调用批处理文件

Batch file 从GVim调用批处理文件,batch-file,vim,Batch File,Vim,我制作了一个简单的批处理文件来评估传递的命令行参数。该文件如下所示: :: cl-calc.bat @echo off set /a value=%* echo %value% 我把它放在我的C:\Windows\System32\中,所以当我使用命令行时,我会得到: C:\Users\me\Desktop>cl-calc 32*2 64 这太棒了。但是当我尝试从Vim调用它时(使用!cl calc 32*2),我得到了一个错误 “cl calc”不被识别为内部或外部命令、可操

我制作了一个简单的批处理文件来评估传递的命令行参数。该文件如下所示:

:: cl-calc.bat
@echo off    
set /a value=%*
echo %value%
我把它放在我的C:\Windows\System32\中,所以当我使用命令行时,我会得到:

C:\Users\me\Desktop>cl-calc 32*2
64
这太棒了。但是当我尝试从Vim调用它时(使用!cl calc 32*2),我得到了一个错误

“cl calc”不被识别为内部或外部命令、可操作程序或批处理文件

所以我尝试了其他一些方法,比如:

!cl-calc.bat 2+2
!call cl-calc
let result = system( 'cl-calc 32*2' )
let result = system( 'call cl-calc 32*2' )
我甚至做过这样的事:

!cmd.exe
C:\Windows\System32>cl-calc 2+2
以及以上相关变体。所有这些都得到了与以前相同的错误。当我这样做的时候

C:\Windows\System32>dir /OD
它说上次修改的文件是在几天前修改的(确切地说是5天)。当我在常规命令行中执行此操作时,它会将我的文件显示为最近编辑的文件之一


发生了什么事?如何修复此问题?

我的灵媒能力告诉我Gvim是一个32位程序,它正在查看SysWOW64文件夹,而不是System32。前者是32位,而后者是64位,这已经足够令人困惑了。是的,当他们在看SysWOW64的时候,告诉他们他们在看System32。你的灵力告诉你我如何解决这个问题吗?(除了在SysWOW64中放置一个副本之外,我的另一个猜测是将GVim重新安装为64位?(作为旁注,它在程序文件(x86)中)@DavisDude,您可以将脚本放在一些非系统目录中(
C:\Windows
可能可以工作),它位于您的
%PATH%
中。可能使用您的GVim所在的目录,只需将其添加到系统设置中的
%PATH%
变量中即可。@xaizek这会起作用,由于某些原因,我忘了它可以访问更多的路径。