我想创建一些批处理文件来自动化程序.
我的问题是当我创建批处理文件时,当前目录是什么?它是文件所在的目录,还是与命令提示符中显示的目录相同或其他内容?
我正在查看定义以下变量的批处理文件:
set _SCRIPT_DRIVE=%~d0
set _SCRIPT_PATH=%~p0
Run Code Online (Sandbox Code Playgroud)
%~d0或%~p0实际意味着什么?我希望我的批处理文件只能运行提升.如果未提升,请为用户提供一个选项,以便将批次重新启动.
我正在编写批处理文件来设置系统变量,将两个文件复制到Program Files位置,然后启动驱动程序安装程序.如果Windows 7/Windows Vista用户(启用了UAC,即使他们是本地管理员)在没有右键单击并选择"以管理员身份运行"的情况下运行它,他们将获得"拒绝访问"复制这两个文件并编写系统变量.
如果用户实际上是管理员,我想使用命令自动重启批处理.否则,如果他们不是管理员,我想告诉他们他们需要管理员权限才能运行批处理文件.我正在使用xcopy来复制文件,使用REG ADD来编写系统变量.我正在使用这些命令来处理可能的Windows XP机器.我在这个主题上发现了类似的问题,但没有任何关于将批处理文件重新启动为高架的问题.
有人可以帮我理解命令cd /d %~dp0及其目的.dos命令再次出现在下面
cd /d %~dp0
Run Code Online (Sandbox Code Playgroud)
请帮助我理解它的含义.
如何创建一个简单的BAT文件来运行位于C:\ somescript.py的python脚本?
非常感谢
如果变量以"abc"开头(例如),我如何找出(使用Batch)?
我知道如果我知道整个内容(如果"%variable%"=="abc")我可以搜索变量,但我希望它只关注开头.
我需要它来找出批处理文件的位置,所以如果有任何其他命令,请告诉我.
我正在使用installshield并且有一组批处理文件,我想在安装过程中运行它们.我没有从installshield执行每个批处理文件,而是想创建一个执行所有批处理文件的批处理文件.
我遇到的问题是调用批处理文件位于其他目录的两个目录中.当批处理文件尝试调用其他文件时,它们无法运行,因为它们无法找到所需的资源.似乎当它们从批处理文件中执行两个目录时,它们出于某种原因使用调用批处理文件的相对路径.我的假设是否正确?
我调用的批处理文件之一是用于为h2数据库加注星标的批处理文件,调用如下所示:
call h2\bin\h2.bat
Run Code Online (Sandbox Code Playgroud)
如果我在命令提示符下转到/ h2/bin目录,h2.bat运行正常但是一旦我从调用批处理文件运行它,这就是我得到的错误.
错误:无法找到或加载主类org.h2.tools.Console
如何在不使用调用批处理文件路径的情况下从另一个批处理文件调用?
问题:
路径:
Android SDK: C:\Program Files\Android\android-sdk
JDK used for android: C:\Program Files\Java\jdk1.7.0_04 (There are other JDKs also in dir Java)
Run Code Online (Sandbox Code Playgroud)
环境变量:
ANDROID_SDK_HOME: C:\Program Files\Android\android-sdk
JAVA_HOME: C:\Program Files\Java\jdk1.7.0_04;C:\Program Files (x86)\Java\jre1.6.0;C:\Program Files\Java\jre7;
System Path: C:\Program Files\Java\jdk1.7.0_04\bin;C:\Program Files\Java\jdk1.7.0_01\bin;C:\Program Files (x86)\Java\jdk1.5.0\bin;C:\Program Files\Android\android-sdk\tools\
Run Code Online (Sandbox Code Playgroud)
错误:
SDK Manager on cmd
Failed to execute tools\android.bat.
The system cannot find the file specified
Android.bat on cmd
Unable to access jar file lib\archquery.jar
Invalid path
find_java on cmd
nothing returned
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的文件夹结构:
project
bin
my_program.exe
misc_stuff.exe
DROP_OVER_ME.bat
input_file.txt
Run Code Online (Sandbox Code Playgroud)
基本上,我希望能够将输入文件拖放到DROP_OVER_ME.bat批处理文件的顶部,并将输入文件的路径传递给exe.
这是我的批处理文件的样子:
@echo off
start bin/my_program.exe %1
exit
Run Code Online (Sandbox Code Playgroud)
当我拖放input_file.txt批处理文件时,一切正常 - my_program.exe成功接收输入文件的路径并运行.
但是,当input_file.txt它位于项目文件夹之外时,拖放它会使批处理文件弹出一条弹出消息说
Windows无法找到'bin/my_program.exe'.确保正确键入名称,然后重试.
如何修复我的批处理文件,以便从文件系统中的任意位置拖放文件?
batch-file ×8
windows ×5
android ×1
cmd ×1
directory ×1
file ×1
if-statement ×1
installation ×1
python ×1
sdk ×1
text ×1
uac ×1
variables ×1
windows-10 ×1