我想創建一個批處理文件,它將返回一個文件位置,包括分區(或驅動器),以便我可以在批處理文件中使用它進行更多操作。 文件名是已知的,但分區和目錄未知。那可能嗎?批處理文件跨分區的文件搜索
1
A
回答
0
你可以嘗試這樣的事情:
@echo off
Title Searching for file by name
Mode con cols=75 lines=3
cls & color 0A
Set SearchResult=SearchResult.txt
If Exist %SearchResult% Del %SearchResult%
echo(
set /P "FileName=Type the file name for looking for = "
Setlocal EnableDelayedExpansion
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (
Set MyDrive=%%i
echo(& cls
echo( & echo Please Wait for moment .... Searching for "%FileName%" on "!MyDrive!\"
@where /r !MyDrive!\ "%FileName%" >> %SearchResult%
)
Start %SearchResult%
0
下面的腳本 - 我們稱之爲findfile.bat
- 搜索具有給出一個命令行參數的名稱的文件(例如,findfile.bat "lostfile.txt"
)上本地磁盤和網絡驅動器作爲一個例子:
@echo off
for /F "skip=1" %%I in (
'wmic LOGICALDISK WHERE ^(^
DriveType^=3 OR^
DriveType^=4^
^) GET DeviceID'
) do (
for /F "delims=" %%J in ("%%I") do (
2> nul where /R %%J\ "%~1"
)
)
的wmic
命令用於檢索當前系統上可用的驅動器。在示例中,允許有兩個值DriveType
:3
,表示本地磁盤,而4
表示網絡驅動器。您可以根據需要調整過濾器 - 參考站點Win32_LogicalDisk class獲取所有可能的值。要不過濾任何驅動器類型,只需刪除整個WHERE
子句,然後使用其餘的wmic
命令行wmic LOGICALDISK GET DeviceID
。
相關問題
- 1. 批處理文件搜索文件夾中的文件
- 2. 批處理 - CMD文件搜索
- 3. 批處理文件搜索註冊表
- 4. 使用FindStr從批處理文件中搜索文件
- 5. 批處理文件,搜索文件,並替換字符串
- 6. 在Windows批處理文件中循環搜索文件
- 7. 不斷整天搜索文件?批處理文件?
- 8. 批處理文件搜索文件並列出目錄
- 9. 搜索文件的批處理腳本和處理這些文件?
- 10. 跨使用批處理文件
- 11. 批處理文件,搜索文件夾中的所有文件,然後排序
- 12. 批處理文件搜索文件夾並刪除特定文件
- 13. 批處理文件搜索文本並將其寫入文本文件
- 14. 批處理文件「」
- 15. 批處理文件
- 16. 批處理文件
- 17. 批處理文件
- 18. 批處理文件 - 忽略子批處理文件中的CLS
- 19. 批處理文件條件
- 20. 搜索和替換批處理文件的問題
- 21. 批處理 - 在文件中搜索精確的行
- 22. 批處理文件來搜索「%〜1」中的內容
- 23. 批處理文件不會在批處理文件
- 24. 批處理文件,創建另一個批處理文件
- 25. 批處理文件:另存爲批處理文件(.cmd)
- 26. 將批處理文件包含在批處理文件中
- 27. 如何從批處理文件中調用批處理文件?
- 28. Oracle在批處理文件中導入批處理文件
- 29. 從另一個批處理文件運行批處理文件
- 30. 如何從批處理文件調用批處理文件
編輯你的問題,併發布一些你已經嘗試過的代碼! – Hackoo
要在單個驅動器上搜索某個文件, G。 'C:',你可以使用'where/R C:\「filename.ext」';要在多個驅動器上執行此操作,可以使用'for'循環,例如(C:D:E:F :)中的%% D執行@where/R %% D \「filename.ext」'... – aschipfl