【问题标题】: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=$(找到文件名)

      【讨论】: