如何在批处理文件中的变量中获取文件的位置?

时间:2016-06-16 04:43:11

标签: windows batch-file cmd command command-prompt

Windows命令提示符查询: 我有一个根目录" A"。 在" A"内有几个其他子目录。 现在这些目录中的某个地方有一个名为" setup.exe"的文件。 现在我想要从A到文件的完整路径。 稍后我将在批处理文件中使用此路径。 所以我希望它存储在一些变量中。 我找到了获取路径但无法将其存储到某个变量的方法。

请帮助。

2 个答案:

答案 0 :(得分:0)

试试这个,它可能对你有帮助。

for /r "C:\directory path" %%a in (*) do if "%%~nxa"=="setup.exe" set variable_to_store_path=%%~dpnxa
if defined variable_to_store_path (
echo %variable_to_store_path%
) else (
echo File not found
)

答案 1 :(得分:0)

让命令 DIR 在目录树中找到setup.exe并使用命令 FOR 处理 DIR 的输出以指定找到的内容setup.exe具有环境变量的完整路径。

@echo off
set "SetupFile="
for /F "delims=" %%# in ('dir C:\a\setup.exe /A-D /B /S 2^>nul') do set "SetupFile=%%#"
if "%SetupFile%" == "" (
    echo Could not find setup.exe.
) else (
    echo Found %SetupFile%
)

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • echo /?
  • dir /?
  • for /?
  • if /?
  • set /?

另请参阅Using command redirection operators了解如何通过重定向错误消息,在未找到任何setup.exe时将 DIR 输出的错误消息抑制为 STDOUT 设备 NUL 2>nul一起使用转义重定向操作符>^执行命令 DIR 而不是生成语法错误,因为无法在 set / 命令 / 文件指令 FOR 中指定重定向。