Xác định đường dẫn mạng được ánh xạ từ cửa sổ cmd


26

Tôi có một ổ đĩa mạng - được ánh xạ tới Z:\

Có một lệnh đơn giản để biết đường dẫn mạng đầy đủ từ cmd?

Tức là nếu cmdhiển thị Z:\ABC\, tôi đã có một lệnh để xuất\\networkDrive\MappedDir\ABC

net use là tốt nhưng tôi muốn có được đường dẫn đầy đủ của thư mục làm việc hiện tại (cho các bản sao nhanh).

Câu trả lời:


37

Kiểu

net use

Nó sẽ hiển thị cho bạn tất cả các ổ đĩa mạng hiện đang kết nối.

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network

Cảm ơn, bạn có biết một cách để có được đường dẫn đầy đủ của thư mục làm việc hiện tại không?
Ofiris

1
Thế còn echo %cd%?
Endoro

@Endoro, echo %cd%xuất ra thư mục hiện tại ( Z:\ABC) chứ không phải\\netDrive\ABC
Ofiris

Tôi không nghĩ có một dòng lệnh đơn giản mà bạn có thể làm để có được nó. Bạn có thể viết một tập lệnh batch / powershell để làm điều đó, nhưng tôi chưa thử tạo một tập lệnh. Kiểm tra câu trả lời từ Icarus trên: superuser.com/questions/244579/ Có lẽ bạn có thể sử dụng nó theo nhu cầu của mình.
Darius

Còn các ổ đĩa hiện không được kết nối (ví dụ: qua VPN hiện đang bị ngắt kết nối) thì sao?

1

Đây là một câu hỏi khá cũ nhưng .. Tôi đang tìm kiếm câu trả lời chính xác giống như tôi đang cố gắng tạo một lô sẽ sử dụng đường dẫn UNC đến vị trí thực tế của bản vá và thực hiện một số điều ở đó (vì vậy chỉ sao chép và dán vào vị trí khác / thư mục và bắt đầu lại).

Khi tôi không thể tìm thấy câu trả lời, tôi đã tự mình tìm ra giải pháp, nhưng nó không hay lắm và chắc chắn không phải là một lệnh đơn giản. Nhưng nó có thể được thực hiện theo lô. Trên CMD nó sẽ là:

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

Bạn có thể sao chép bốn dòng (tốt hơn 4 + dòng trống) và dán chúng vào CMD để có được tiếng vang của đường dẫn để sao chép nó.

Trong đợt, bạn sẽ sử dụng nó một chút khác nhau:

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

Biến% CD% lưu trữ đường dẫn hiện tại và bạn chỉ cần ký tự ổ đĩa để bạn chỉ tìm kiếm với lệnh FIND trong NET USE. Với "mã thông báo = 2" (hoặc 3, tùy thuộc vào đầu ra NET USE), biến% i lưu đường dẫn đến ký tự ổ đĩa bạn đã tìm kiếm. Sau đó, lệnh SET thứ hai thêm các thư mục bạn đã duyệt trên ổ đĩa mạng với% CD: ~ 2% (bù 2 để cắt ký tự ổ đĩa).

Đối với lô, bạn sử dụng biến% ~ d0 hoặc% ~ p0. % 0 lưu trữ đường dẫn đầy đủ của chính lô đó (ví dụ: Z: \ temp \ test.bat;% ~ d0 = Z :;% ~ p0 = \ temp \; d = drive, p = path, f = full path, n = name) nếu không thì nó tương tự như lệnh CMD.


mẫu là hấp dẫn, nhưng bị hỏng. Ví dụ, ví dụ (DO...)trong lô bị thiếu SET ...bOriginalPathkhông được xác định ở bất kỳ đâu.
matt wilkie

0

Đường dẫn của dơi có thể khác với thư mục làm việc. Vì vậy, chúng ta cần cách tiếp cận đầu tiên của Mykorrhiza bên trong một con dơi. Để phù hợp với tình trạng thiếu trạng thái và cả ổ đĩa cục bộ, chúng tôi cần kiểm tra bổ sung. Sau đây là mã làm việc:

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%

Mã trên hoạt động trong hầu hết các trường hợp, nhưng có những trường hợp sử dụng mạng và tìm kiếm không hoạt động, sau đây là phương pháp làm việc được thử nghiệm cuối cùng:

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%

0

Nếu bạn muốn nó luôn hiển thị nó theo lời nhắc của bạn, bạn có thể

set prompt=$M$Q$S$P

nó sẽ hiển thị cho bạn đường dẫn UNC và đường dẫn dựa trên ký tự ổ đĩa của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.