语境:
我有一个包含以下代码的 .BAT 文件:
cd C:\folder1\folder2
subl .
当在目录“C:/folder3”中执行该 .BAT 文件时,我希望停留在从我的 .BAT 文件导航的目录“C:\folder1\folder2”。现在我只是返回到我之前执行该 bat 文件的目录,即 C:\folder3。
这是因为我想在该目录“C:\folder1\folder2”中执行一些手动命令
答案1
你需要使用pushd
:: to call and make direcoty current
pushd C:\folder1\folder2
subl .
:: go back to your old current working directory
popd
干杯。
答案2
cd
和都pushd
可以与您尝试在批处理文件中使用的任何命令一起使用 - 这里的问题是,当您尝试使用时,subl
它将在批处理文件之外执行(忽略更改目录的尝试)。您要确保的第一件事是,您有正确的环境变量来从命令运行 Sublime。
去做这个:
- 进入控制面板
- 点击“系统”
- 单击“高级系统设置”
- 单击环境变量...
- 创建新的系统变量
- 将变量命名为 SUBLIME
- 将变量值设为 Sublime 安装的文件夹路径
(即 C:\Program Files\Sublime Text 3) - 单击“确定”
- 编辑位于用户变量中的路径变量
- 将 %SUBLIME% 添加到变量值中(在 之后
;
) - 单击所有窗口上的“确定”将其关闭
即使subl
可以从命令中运行,问题仍然是sublime_text.exe
或subl.exe
仍将从其主目录运行 - 无论在批处理中设置了什么当前目录。要解决这个问题,您需要在命令中包含目标目录,以便subl
知道subl
在哪里执行它们。您可以将目标目录设置为变量并在命令中使用它subl
:
@echo off
set "dir=C:\folder1\folder2"
subl "%dir%\targetfileorfolder"
希望这能有所帮助;这不是你在批处理文件中做错的事情——最终归结为配置问题subl
。我找到了一个半相关的答案这里对于 Python,如果您愿意更改这些类型的设置(如果它们可用),您可能能够对 cmd/batch 执行类似的操作。