【问题标题】:finding a files path in the command line在命令行中查找文件路径
【发布时间】:2024-01-21 00:31:01
【问题描述】:
我正在执行批处理脚本任务,我必须从另一个脚本中调用一个脚本。无论我的讲师将这些脚本保存在哪里,我都需要该脚本来运行第二个脚本。我该怎么做。有没有办法在脚本中找到脚本的路径并使用它来执行文件。任何帮助都会很棒。我想我需要使用 %'s 但我不确定。
脚本名称为 Hello World.bat。
如果我不知道讲师将它放在哪个目录中,我将如何将 Hello World.bat 复制到 C:\。我将使用什么命令/s 以便无论脚本位置如何,副本都能正常工作。
【问题讨论】:
标签:
command-line
path
copy
dos
【解决方案1】:
我没有看到“DOS”标签,但我假设它现在是。如果你想要整个路径,你可以这样做:
echo %cd%
如果您只想要最后一个文件夹,这可行(在 .bat 文件中):
for %%* in (.) do @echo %%~n*
请注意,在命令行中,上述命令将与单个 % 一起使用:
for %* in (.) do @echo %~n*
【解决方案2】:
如果您正在执行的脚本正在调用 SAME 文件夹位置中的其他脚本,您可以在路径语句前加上“%~dp0”或“%~dps0”,但不要在其和名称之间添加反斜杠您正在调用的脚本。换句话说,如果 script1.bat 在同一个文件夹中调用 script2.bat,则 script1.bat 中的语句将引用“%~dp0script2.bat”
【解决方案3】:
对不起,批处理文件,我不熟悉,但是在nix shell中,如果您确切知道文件名并且名称是唯一的,则可以使用locate命令返回文件的路径。
喜欢
name=$(找到文件名)