2012-10-11 15 views
1

我需要找到特定目錄的位置,然後將該目錄路徑存儲到Windows批處理腳本中的變量中。如何使用Windows批處理文件查找目錄並將其存儲到變量中?

我還希望命令在找到匹配項時返回(以避免在找到目錄時搜索整個硬盤驅動器)。

到目前爲止,我已經試過這在命令行上:

dir c:\ /s /b /ad | find "DirectoryName" 

這裏的問題是,它搜索整個驅動​​器,找到匹配後還是一樣。另外,我仍然不知道如何將結果存儲在批處理文件中的變量中。應該只有一個結果。

基本上我需要服用點的這樣的equivilent在Linux/bash下

export DIRPATH=`find/-name "DirectoryName" -print -quit` 

爲尋找謝謝!

+0

您需要此更改環境變量是永久性的,或者持續時間只是暫時的你的批處理文件執行? – Laf

+0

@Laf它只需要是批處理文件的臨時文件。一旦我找到這個目錄,我需要複製一些文件。 –

回答

1

批量處理需要FOR /F以獲取命令的輸出。

FOR /F "usebackq delims=" %%p IN (`dir c:\ /s /b /ad ^| find "DirectoryName"`) DO (
    set "DIRPATH=%%p" 
) 
echo %DIRPATH% 

由於find命令中有引號,所以需要usebackq選項。 而且有必要逃避管道符一次,因爲它應該管的DIR命令,而不是命令

+0

我在這方面遇到了一些麻煩。我得到'DirectoryName:沒有這樣的文件或目錄',這看起來很奇怪,因爲查找正在從目錄中搜索純文本,正確嗎? –

+0

它適用於我,usebachq而不是'usebackq'只有一個誤解。 – jeb

相關問題