在CMD中,我可以使用以下命令搜索文件:
DIR /S /B PROGRAM.EXE
如果找到该文件,结果将是:
C:\ Users \用户开发\桌面\的Program.exe
我想在输出中只输入没有文件名C:\Users\Dev\Desktop\
的目录,只分配变量的路径。
有没有办法在CMD上做到这一点?
答案 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