menemukan direktori dan membukanya di Windows dengan cmd

3

apakah mungkin ada cara untuk menemukan direktori file ("example.txt") dan kemudian jika menemukan file buka direktori (seperti "c: \ example \ sub \") pada cmd (atau vb)? tentu saja mencari di semua partisi bukan hanya "C: \".

powerofwheels
sumber
Bagian pertama dari pertanyaan Anda jelas dan saya pikir saya punya solusi untuk itu di bawah ini. Saya tidak yakin apa yang Anda maksud di bagian kedua - "lalu jika menemukan file buka direktori"? Bisakah Anda mengulanginya?
Hack-R
Saya hanya bermaksud bahwa ketika file ditemukan, saya ingin folder tempat file itu berada terbuka.
powerofwheels
Oh ok, begitu. Terimakasih atas klarifikasinya.
Hack-R

Jawaban:

4

Jalankan perintah berikut dari root masing-masing drive Anda.

for /f "delims=" %a in ('dir /s /b example.txt') do explorer %~dpa

Perintah di atas akan menemukan semua file bernama "example.txt" dan kemudian menjalankan explorer di direktori di mana mereka berada.

Jika Anda ingin menggunakan file batch maka masing-masing % perlu diganti oleh %%:

for /f "delims=" %%a in ('dir /s /b example.txt') do explorer %%~dpa

Untuk mendapatkan daftar drive:

for /f "skip=1 delims=" %a in ('wmic logicaldisk get caption') do @echo %a

Dalam file batch:

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do @echo %%a

Menyatukan semuanya dalam file batch:

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
    cd %%a
    cd \
    for /f "delims=" %%b in ('dir /s /b example.txt') do explorer %%~dpb
)

Untuk berhenti setelah pertandingan pertama:

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
    cd %%a
    cd \
    for /f "delims=" %%b in ('dir /s /b example.txt') do (
        explorer %%~dpb
        exit
    )
)
DavidPostill
sumber
Ini bekerja terima kasih, bagaimana cara membuatnya berfungsi dalam file batch? Saya mencoba tetapi hanya berfungsi di jendela command prompt, juga bagaimana cara membuatnya mencari setiap drive?
powerofwheels
meskipun kode dalam beberapa kasus membuka satu folder kembali folder di mana file berada: jika saya mencari "example.txt" yang ada di folder3 ("D: \ folder1 \ folder2 \ folder3"), dalam beberapa case membuka folder2, tetapi dalam kasus lain ia berfungsi, bagaimana ini bisa diselesaikan?
powerofwheels
(C: \ Windows \ System32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Portable Devices \ wpdlog02.sqm) - (C: \ Users \ Matt \ Desktop \ WALLS \ wall1.png) - (C: \ Program Files ( x86) \ Microsoft XNA \ XNA Game Studio \ v4.0 \ Redist \ DX Redist \ APR2007_d3dx9_33_x86.rar) (C: \ ProgramData \ Adobe \ Adobe PDF \ Extras \ MAGAZINE Ad 2006 JPN.joboptions), saya mencoba dengan jalur tersebut untuk menguji kode dan mereka tidak akan berfungsi.
powerofwheels
apakah Anda mengganti example.txt dengan path lengkap atau hanya nama file? Beberapa nama file memiliki spasi. Lalu, Anda mungkin perlu "di sekitar mereka misalnya dir / s / b" contoh dengan space.txt "
DavidPostill
@ powerofwheels menggantikan example.txt dengan wpdlog02.sqm bekerja seperti yang diharapkan untuk saya. membuka explorer di direktori `C: \ Windows \ System32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Portable Devices` dan mengakhiri file batch.
DavidPostill
0

Ini akan menemukan semua file dengan ekstensi yang diberikan di direktori kerja saat ini dan semua subdirektori:

dir *.cpp *.h *.java /b/s

Ini akan melakukannya untuk file yang dimulai dengan "pyth"

dir pyth*

Anda dapat memperluas contoh ini.

Untuk membuka lokasi file (mis. Folder) Anda bisa cd ke hasil dan ketik juga

explorer .

atau

start .

Jika Anda tidak ingin menggunakannya cd maka Anda dapat melewati lokasi file dari dir ke explorer atau start perintah.

Untuk menyesuaikan ini menjadi for-loop untuk setiap drive yang terpasang lihat pos Stackoverflow ini:

https://stackoverflow.com/questions/5709189/batch-script-to-find-drive-letter-of-a-mounted-device

Hack-R
sumber
Ini menemukan file tetapi belum membuka direktori di mana file itu berada.
powerofwheels
@powerofwheels Terima kasih atas klarifikasi; Saya telah memperbarui solusinya.
Hack-R
"Jika Anda tidak ingin menggunakan cd maka Anda dapat meneruskan lokasi file dari dir ke explorer atau memulai perintah." Bagaimana cara saya menyampaikan informasi ini?
powerofwheels
Jika saya ingin menemukan file "example.txt" di drive D:, dan kemudian meneruskan informasi ini ke explorer; bagaimana kodenya untuk file batch? Juga, ada cara untuk membuatnya mencari setiap drive?
powerofwheels
@ powerofwheels Ini akan memberi Anda apa yang perlu Anda lakukan untuk loop dalam file batch untuk setiap drive: stackoverflow.com/questions/5709189/…
Hack-R