В качестве альтернативы, если вы не хотите использовать стороннее программное обеспечение, вы действительно можете сделать это из командной строки.
Работать с именами каталогов, в которых есть пробел, например, C:\Program Files
довольно сложно, поэтому в Windows 7 у меня получилось:
@echo off
for /f "tokens=*" %%A in ('dir /b /ad C:\') do (
if "C:\%%A"==%2 (
echo Not scanning %2
) else (
dir /s /b "C:\%%A\%1"
)
)
Использование: file.bat file_to_be_searched.extension "C:\directory\not\to\search"
Обратите внимание на ""
в каталоге, вы должны использовать его для работы скрипта.
Что это делает: Для каждой строки (всех символов) вывода команды dir /b /ad C:\
, которая перечисляет каталоги в C:\
, выполните:
Если C:\directory
- это your_directory
, не сканируйте его. Иначе, ищите файл, который вы указали в нем.
Пример (я назвал search.bat
и поместил файл с именем a.txt
в C:\Program Files
)
C:\Users\XXXX\Desktop>search.bat a.txt "C:\Windows"
File Not Found
File Not Found
File Not Found
File Not Found
File Not Found
C:\Program Files\a.txt
File Not Found
File Not Found
File Not Found
File Not Found
File Not Found
Not scanning "C:\Windows"
Вы можете адаптировать скрипт так, чтобы он не осуществлял поиск в нескольких каталогах, добавляя больше операторов if
.
PS: я забыл упомянуть, это будет искать только в папке root, то есть C:\
. Если вы хотите искать папки в другом месте, вам придется адаптировать скрипт. Приветствия.