将文件的目录分配给变量

时间:2017-02-02 12:02:38

标签: batch-file cmd

在CMD中,我可以使用以下命令搜索文件:

DIR /S /B PROGRAM.EXE

如果找到该文件,结果将是:

  

C:\ Users \用户开发\桌面\的Program.exe

我想在输出中只输入没有文件名C:\Users\Dev\Desktop\的目录,只分配变量的路径。

有没有办法在CMD上做到这一点?

2 个答案:

答案 0 :(得分:2)

像这样使用For循环:

For /F "Delims=" %A In ('Dir/B/S/A-D "Program.exe" 2^>Nul') Do @Echo=%~dpA

将批处理文件中的 % 加倍。

在批处理文件中,要将任何匹配项设置为变量,请使用以下结构:

@Echo Off
Set "i=0"
For /F "Delims=" %%A In ('Dir/B/S/A-D "Program.exe" 2^>Nul') Do (Set/A "i+=1"
    Call Set "OnlyPath[%%i%%]=%%~dpA")
Set OnlyPath[
Timeout -1

每个匹配都将被设置为一个不同的变量,以确保如果进行多个匹配,则可以全部检索它们。

答案 1 :(得分:2)

使用批处理文件,您可以这样做:

@echo off
set "Working_Folder=%userprofile%\Desktop"
For /F "Delims=" %%F In ('Dir /B /S /A-D "%Working_Folder%\PROGRAM.exe" 2^>Nul') Do (
    Set "MyFolder=%%~dpF"
)
Echo "%MyFolder%" & pause>nul