【发布时间】:2020-02-17 11:44:45
【问题描述】:
我制作了一个批处理文件,用于识别保存在该特定文件夹中的 java 文件并编译它们。但是当我从记事本++ 运行它时,批处理文件将进入记事本++ 工作目录,即C:\Program Files\Notepad++,然后启动,所以我没有得到想要的输出。
<Command name="Java_Executor" Ctrl="no" Alt="no" Shift="no" Key="0">"D:\Projects\Java\Executor Java.bat"</Command>
我多次尝试编辑它,但没有得到想要的输出。
<Command name="second try" Ctrl="no" Alt="no" Shift="no" Key="0">cmd /C "cd /d D:\Projects\Java\ && D:\Projects\Java\Executor Java.bat"</Command>
这是我的第二次尝试。
这是第三次尝试:
<Command name="Java_Executor" Ctrl="no" Alt="no" Shift="no" Key="0">cmd /k cd $(CURRENT_DIRECTORY) && "D:\Projects\Java\Executor_Java.bat"</Command>
我应该编辑什么以便我的批处理文件从它所在的同一个文件夹中运行?
假设我的 bat 文件是 D:\Projects\Java\Executor Java.bat,内容为:
@ECHO OFF
color F0
ECHO WELCOME TO EXECUTOR
ECHO -Garvit Joshi(garvitjoshi9@gmail.com)
ECHO USER:%USERNAME%
cd %cd%
:first
ECHO LOOKING FOR FILES IN:%cd%
color F0
ECHO Name Of Java Executable Files Present In Folder Are:
python Filename_java.py
set /p "input=Enter The File You Want To Execute:"
ECHO ===============================
javac %input%.java
ECHO ===============================
ECHO Name Of Java Executable Class Present In Folder Are:
python Filename_class.py
ECHO ===============================
javac %input%.java
ECHO ===============================
set /p "input=Enter The Class You Want To Run:"
color 0A
ECHO ===============================
ECHO OUTPUT:
ECHO ===============================
java %input%
ECHO ===============================
color 0F
pause
ECHO =======================================================
ECHO *******************************************************
ECHO =======================================================
goto first
【问题讨论】:
-
使用批处理文件的特殊
%0变量的适当扩展。打开命令提示符窗口并输入call /?以查看可用的。然后使用CD、PushD或Start的/D选项更改目录。 -
您的文件名
Executor Java.bat中似乎有一个空格。文件名中的空格经常会导致问题。我建议重命名文件。 -
做了,还是不行
-
您能否向我们解释一下您正在使用什么代码,因为那不是批处理文件。看起来您正在从其他不是 Notepad++ 问题的语言启动批处理文件。
-
@GarvitJoshi,如果可以的话,我将链接中的批处理文件代码添加到问题帖子中,因为我的回答简要引用了批处理文件代码。
标签: batch-file notepad++