batch-file - 强制批处理执行目录
问题描述
我有一个批处理是通过在其上拖放一个文件来启动的(又名 %1 参数 = 文件路径)。但这会导致它在拖放文件所在的目录中启动。
问:如何强制批处理在 .bat 文件所在的目录中运行(路径可能会更改,因此它不能是静态的)。是否有某种方法可以获取 .bat 文件的目录,然后在执行更多行之前通过 cd 命令移动到该目录?
解决方案
拖放文件的目录是:"%~dp1"
@echo off
cd /d "%~dp0"
echo/ & echo/ Bat path is: "%~dp0"
echo/ & echo/ Current path is: "%__CD__%" or "%CD%"
echo/ & echo/ Argument path is: "%~dp1"
%__APPDIR__%timeout.exe -1
观察:
又名 %1 参数 = 文件路径不完全正确,这是您的参数,对于您需要使用的路径"%~dp1"
- 语法参数
- 操作方法:将命令行参数(参数)传递给 Windows 批处理文件。
推荐阅读
- java - Android 状态栏和导航问题
- mysql - 在 Rails has_many 中排序,将字符串类型转换为十进制
- selenium - 无法使用 NightwatchJS 关闭浏览器
- u-sql - U-SQL 文本提取器整数
- camunda - Camunda 接收任务
- scikit-learn - sklearn 验证曲线中的多个参数
- anaconda - 在 conda 激活/停用期间无法修改 PATH
- java - 如何在 Spring JPA 存储库中加入多个表的结果
- python - 为 Google Adwords API 设置客户 ID
- python - 如何从一个数字的文本文件和该数字前面的单词创建对?