Eşlenen ağ yolunu cmd penceresinden belirleme


26

Eşlemeli bir ağ sürücüm var Z:\

Ağın tam yolunu bilmek basit bir komut var mı cmd?

Yani eğer cmdgösterirse Z:\ABC\, çıktı için bir komut istemiştim\\networkDrive\MappedDir\ABC

net use sorun değil ama geçerli çalışma dizininin tam yolunu bulmak istiyorum (hızlı kopyalar için).

Yanıtlar:


37

tip

net use

Bu, şu anda bağlı olan tüm ağ sürücülerini gösterir.

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

Teşekkürler, mevcut çalışma dizininin tam yolunu bulmanın bir yolunu biliyor musunuz?
Ofiris,

1
Ne hakkında echo %cd%?
Endoro

@Endoro, echo %cd%şu anki dizini ( Z:\ABC) \\netDrive\ABC
çıkarır

Bunu almak için yapabileceğiniz basit bir komut satırı olduğunu sanmıyorum. Bunu yapmak için bir toplu iş / powershell betiği yazabilirsiniz, ancak bir tane yapmayı denemedim. Icarus'un cevabını kontrol edin: superuser.com/questions/244579/… belki ihtiyaçlarınız için kullanabilirsiniz.
Darius

Şu anda bağlı olmayan (örneğin şu anda bağlantısı kesilmiş bir VPN üzerinden) sürücüler?

1

Oldukça eski bir soru ama .. UNC yolunu yamanın bulunduğu yere kullanacak ve oradaki bazı şeyleri yapan bir grup oluşturmaya çalıştığım aynı cevabı arıyordum. Klasör ve yeniden başlat).

Bir cevap bulamadığım için kendim bir çözüm buldum, ama çok güzel değil ve kesinlikle basit bir komut değil. Ancak toplu olarak uygulamak mümkündür. CMD'de şöyle olurdu:

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

Dört satırı (daha iyi 4 + boş satır) kopyalayabilir ve kopyalamak için yolun bir yansımasını almak için bunları CMD'ye yapıştırabilirsiniz.

Toplu iş içinde biraz farklı kullanırsınız:

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

% CD% değişkeni geçerli yolu saklar ve yalnızca sürücü harfine ihtiyacınız vardır, bu nedenle yalnızca NET USE içindeki FIND komutuyla ararsınız. "Tokens = 2" (veya 3, NET USE çıkışına bağlı olarak) ile% i değişkeni, aradığınız sürücü harfinin yolunu saklar. Bundan sonra ikinci SET komutu ağ sürücüsünde taradığınız klasörleri% CD: ~ 2% ekler (sürücü harfini kesmek için ofset 2).

Toplu iş için% ~ d0 veya% ~ p0 değişkenlerini kullanırsınız. % 0 toplu işin tam yolunu saklar (örneğin Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = sürücü, p = yol, f = tam yol, n = name) aksi takdirde CMD komutuna benzer.


örnek merak uyandırıcı, ancak bozuldu. Örneğin (DO...), toplu iş örneğinde eksik SET ...ve bOriginalPathhiçbir yerde tanımlanmadı.
matt wilkie

0

Yarasa yolu çalışma dizininden farklı olabilir. Bu yüzden Mykorrhiza'nın bir yarasa içindeki ilk yaklaşımına ihtiyacımız var. Eksik durum ve ayrıca yerel disk sürücülerinin durumunu karşılamak için ek kontrollere ihtiyacımız var. Çalışma kodu aşağıdadır:

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%

Yukarıdaki kod çoğu durumda çalışır, ancak net kullanımın ve bulgunun çalışmadığı durumlarda, son olarak test edilen çalışma yöntemi şöyledir:

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

İsteğinizde her zaman göstermesini istiyorsanız, istediğiniz

set prompt=$M$Q$S$P

size UNC yolunu ve sürücü harfine dayalı yolunu gösterecek

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.