Tentukan jalur jaringan yang dipetakan dari jendela cmd

26

Saya memiliki drive jaringan - dipetakan ke Z:\

Apakah ada perintah sederhana untuk mengetahui jalur jaringan penuh dari cmd?

Yaitu cmdmenunjukkan Z:\ABC\, saya punya seperti perintah untuk output\\networkDrive\MappedDir\ABC

net use baik-baik saja tetapi saya ingin mendapatkan path lengkap dari direktori kerja saat ini (untuk salinan cepat).

Ofiris
sumber

Jawaban:

37

Mengetik

net use

Yang akan menunjukkan Anda semua drive jaringan yang saat ini terhubung.

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network
Darius
sumber
Terima kasih, apakah Anda tahu cara mendapatkan path lengkap dari direktori kerja saat ini?
Ofiris
1
Bagaimana dengan echo %cd%?
Endoro
@Endoro, echo %cd%menampilkan direktori saat ini ( Z:\ABC) dan tidak\\netDrive\ABC
Ofiris
Saya tidak berpikir ada baris perintah sederhana yang dapat Anda lakukan untuk mendapatkannya. Anda mungkin dapat menulis skrip batch / PowerShell untuk melakukannya, tetapi saya belum mencoba membuatnya. Periksa jawaban dari Icarus di: superuser.com/questions/244579/... mungkin Anda dapat menggunakannya untuk kebutuhan Anda.
Darius
Bagaimana dengan drive yang saat ini tidak terhubung (mis., Melalui VPN yang saat ini terputus)?
1

Ini pertanyaan yang cukup lama tapi .. Saya mencari jawaban yang sama persis ketika saya mencoba membuat batch yang akan menggunakan jalur UNC ke lokasi tambalan yang sebenarnya dan melakukan beberapa hal di sana (jadi hanya salin & tempel ke lokasi lain / folder dan mulai lagi).

Karena saya tidak dapat menemukan jawaban, saya sendiri menemukan solusinya, tetapi itu tidak terlalu indah dan tentu saja bukan perintah yang sederhana. Tetapi dimungkinkan untuk diterapkan dalam batch. Pada CMD akan menjadi:

FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

Anda dapat menyalin empat baris (lebih baik 4 + baris kosong) dan menempelkannya ke CMD untuk mendapatkan gema imidiate dari path untuk menyalinnya.

Dalam batch Anda akan menggunakannya sedikit berbeda:

FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
      bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0

Variabel% CD% menyimpan path saat ini dan Anda hanya perlu huruf drive sehingga Anda hanya mencarinya dengan perintah FIND di NET USE. Dengan "token = 2" (atau 3, tergantung pada output NET USE) variabel% i menyimpan path ke huruf drive yang Anda cari. Setelah itu, perintah SET kedua menambahkan folder yang Anda telusuri di drive jaringan dengan% CD: ~ 2% (offset 2 untuk memotong huruf drive).

Untuk batch Anda menggunakan variabel% ~ d0 atau% ~ p0. % 0 menyimpan path lengkap dari batch itu sendiri (misalnya Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = drive, p = path, f = path penuh, n = nama) kalau tidak mirip dengan perintah CMD.

Mykorrhiza
sumber
sampel menarik, tetapi rusak. Misalnya, (DO...)dalam contoh batch hilang SET ..., dan bOriginalPathtidak didefinisikan di mana pun.
matt wilkie
0

Jalur kelelawar mungkin berbeda dari direktori kerja. Jadi kita perlu pendekatan pertama Mykorrhiza di dalam kelelawar. Untuk mengakomodasi situasi status yang hilang dan juga drive disk lokal, kami memerlukan pemeriksaan tambahan. Berikut ini adalah kode kerjanya:

SET cNetworkPath=    
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%%i)
if "%cNetworkPath%" == "%CD:~0,2%" (
  FOR /F "tokens=3" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
        SET cNetworkPath=%%i)
)
if "%cNetworkPath%" == "" set cNetworkPath=%CD:~0,2%
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

Kode di atas bekerja dalam banyak kasus, tetapi ada kasus di mana penggunaan bersih dan menemukan tidak berfungsi, berikut ini adalah metode kerja yang akhirnya diuji:

SET cNetworkPath=
for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr "%CD:~0,2%"') do (set cNetworkPath=%%i)
echo %cNetworkPath%
jujur
sumber
0

Jika Anda ingin selalu menampilkannya di prompt Anda, Anda bisa

set prompt=$M$Q$S$P

yang akan menunjukkan jalur UNC Anda dan jalur berbasis huruf drive Anda.

Kue mentega
sumber