2017-02-02 25 views
1

在CMD我可以搜索一個文件使用下面的命令:指定的文件的目錄,以一個可變

DIR /S /B PROGRAM.EXE 

如果找到該文件中的結果將是:

C:\ Users \ Dev \ Desktop \ Program.exe

我想在輸出中找到沒有文件名C:\Users\Dev\Desktop\的目錄,只將路徑分配給變量。

在CMD有沒有辦法做到這一點?在批處理文件

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

雙了%

+0

工作文件夾始終位於您的桌面上? – Hackoo

回答

1

使用For循環這樣的。

在一個批處理文件,設置任何匹配的變量使用此結構:

@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 

每場比賽將被設置爲不同的變量只是爲了確保如果超過一個匹配,讓你找回商場。

+0

感謝您的幫助,但我無法完成工作。 我剛剛複製並粘貼了這段代碼並修改了程序名。你測試過了嗎? –

+1

我不需要測試它,因爲它是基本編碼,它可以正常工作。它可能無法正常工作的唯一方法是,如果您不是從以前工作的命令行運行的同一位置運行它。 _因爲你沒有足夠的責任去提供一個位置,我不得不假設你會以類似的方式進行測試_ – Compo

+0

對不起,你是對的!非常感謝! –

1

有了一個批處理文件,你可以做些事情那樣:

@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 
+0

工作得很好,謝謝! –

相關問題