如何在批处理文件中的变量中获取文件的位置?
How to get the location of a file in a variable in a batch file?
Windows 命令提示符查询:
我有一个根目录 "A"。
"A" 中还有其他几个子目录。
现在在这些目录中的某处有一个名为 "setup.exe" 的文件。
现在我想要从 A 到文件的完整路径。
稍后我将在我的批处理文件中需要这个路径。
所以我希望它存储在一些变量中。
我找到了获取路径但无法将其存储到某个变量的方法。
请帮忙。
试试这个,它可能对你有帮助。
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
)
让命令DIR在目录树中找到setup.exe
并使用命令FOR处理[=32=的输出]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%
)
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
dir /?
for /?
if /?
set /?
另请参阅 Using command redirection operators 以了解如何抑制命令 DIR 在未找到任何 setup.exe
通过使用 2>nul
将错误消息重定向到设备 NUL 并使用转义重定向运算符 >
和 ^
应用于执行命令 DIR 而不是产生语法错误,因为在 set / command / 中指定了重定向文件 命令规范 FOR 不可能。
Windows 命令提示符查询: 我有一个根目录 "A"。 "A" 中还有其他几个子目录。 现在在这些目录中的某处有一个名为 "setup.exe" 的文件。 现在我想要从 A 到文件的完整路径。 稍后我将在我的批处理文件中需要这个路径。 所以我希望它存储在一些变量中。 我找到了获取路径但无法将其存储到某个变量的方法。
请帮忙。
试试这个,它可能对你有帮助。
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
)
让命令DIR在目录树中找到setup.exe
并使用命令FOR处理[=32=的输出]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%
)
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
dir /?
for /?
if /?
set /?
另请参阅 Using command redirection operators 以了解如何抑制命令 DIR 在未找到任何 setup.exe
通过使用 2>nul
将错误消息重定向到设备 NUL 并使用转义重定向运算符 >
和 ^
应用于执行命令 DIR 而不是产生语法错误,因为在 set / command / 中指定了重定向文件 命令规范 FOR 不可能。