Làm thế nào để bạn xử lý các CMD CMD không hỗ trợ các đường dẫn UNC như các thư mục hiện tại của Google?


24

Tôi đang cố gắng thay đổi thư mục thành một máy chủ tập tin, chẳng hạn như:

cd \\someServer\\someStuff\

Tuy nhiên, tôi nhận được lỗi sau:

CMD không hỗ trợ đường dẫn UNC như các thư mục hiện tại

Lựa chọn của tôi để điều hướng đến thư mục đó là gì?


Câu trả lời:


34

Nếu bạn đang xem xét việc viết kịch bản, việc tìm hiểu về các lệnh pushdpopdlệnh luôn hữu ích . Đôi khi bạn không thể chắc chắn những ký tự ổ đĩa nào đã được sử dụng trên máy mà tập lệnh sẽ chạy và bạn chỉ cần lấy ký tự ổ đĩa có sẵn tiếp theo. Vì net usesẽ yêu cầu bạn chỉ định ổ đĩa, bạn chỉ cần sử dụng pushd \\server\foldervà sau đó popdkhi bạn hoàn thành.


Nếu bạn chỉ định '*' thay vì sử dụng mạng ký tự ổ đĩa sẽ sử dụng kiểm tra ổ đĩa có sẵn đầu tiên từ ZA. vì vậy 'sử dụng mạng * \ máy chủ \ chia sẻ' không có ổ đĩa Z: ánh xạ sẽ ánh xạ \ máy chủ \ chia sẻ với Z:
Zypher

Nhưng sau đó bạn không biết ký tự ổ đĩa nào được ánh xạ, cho mục đích của phần còn lại của tập lệnh.
tomfanning

@tomfanning Bạn có thể tìm thấy ký tự ổ đĩa bằng cách sử dụng cái này (wmic logicdisk get caption, providername, drivetype, volumename) từ dấu nhắc lệnh và sau đó phân tích đầu ra tìm kiếm \ servername \ sharename của bạn. serverfault.com/questions/62578/ cường
Chris Magnuson

1
@pk. Điều gì xảy ra nếu tập lệnh bị lỗi trước khi nó chạy popd?
Pacerier

15

Hoặc bạn có thể chuyển vỏ của mình sang PowerShell . Nó có hỗ trợ đầy đủ cho các đường dẫn UNC.


Ngoại trừ khi explorer.exe xử lý tệp bạn đang cố xóa. Ngay cả khi cửa sổ explorer đóng, tôi nghĩ nhà cung cấp PS FileSystem (giả sử đó là nhà cung cấp) có thể sử dụng explorer.exe dưới mui xe. hoặc bạn đang nói có một cách để sử dụng UNC mà không cần nhà cung cấp?
JohnZaj

11

Bạn có thể sử dụng net useđể ánh xạ ổ đĩa mạng tới đường dẫn UNC và sau đó duyệt đến ổ đĩa được ánh xạ.


2
Đúng đây là cách duy nhất để thực hiện nó từ dòng lệnh, nhưng hãy cảnh giác khi sử dụng nó cho bất cứ điều gì ngoại trừ các lệnh vứt đi (tức là những việc bạn chỉ làm một lần) vì nếu không, bạn sẽ gặp sự cố với ổ đĩa không được ánh xạ hoặc bị được ánh xạ nhưng không được kết nối và nhiều tên người dùng :(
Mark Henderson

1
Bạn không thể thay đổi thư mục này, nhưng bạn vẫn có thể sử dụng nó trong các lệnh: dir \\ someserver \ Stuff call \\ someserver \ Stuff \ anything.bat
Benoit

1
Trên thực tế, bạn có thể sử dụng \ someserver \ share ... bạn chỉ cần hack reg để làm điều đó :-)
Bart Silverstrim

@BartSilverstrim, thế nào?
Pacerier


1

Cũng như ánh xạ rõ ràng một ổ đĩa để cmdcó thể đối phó, cũng có thể cần đến các tiện ích khác, bạn cũng có thể thử một trình vỏ lệnh thay thế như PowerShell.


1

Điều này làm việc cho tôi trong Win8x64:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

Bạn cũng có thể làm điều này trong HKCU, chỉ cần đảm bảo rằng bạn đăng xuất và bật lại.


1

theo @pk, hãy sử dụng Pushd & popd, đây là một ví dụ.

sử dụng Pushd để tạo một ổ đĩa ảo tạm thời và sau khi thực hiện xong một popd để xóa ổ đĩa ảo tạm thời

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

Sẽ không phải là lệnh ngã ba làm việc ở đây?


1
Đừng nghĩ như vậy, đường nối chỉ hoạt động cho các thư mục địa phương.
Berzemus

Nó có hoạt động không? Từ bài viết trên Wikipedia: "Các điểm nối chỉ có thể liên kết đến các thư mục trên một ổ đĩa cục bộ; các điểm nối đến các chia sẻ từ xa không được hỗ trợ."
Peter Mortensen

@#%!# bạn đúng. Tôi đã nghĩ nó giống như một lệnh mount, quên rằng tôi đã gặp vấn đề này khi tôi nhìn vào nó hai năm trước. thở dài Xin lỗi ...
Bart Silverstrim

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.