Attualmente sto scrivendo uno script che dovrebbe mappare un'unità di rete alla lettera Z
, sto usando il comando net use z: \\path
, il fatto è che se l'utente sta già utilizzando questa lettera i non sarà in grado di mapparlo, c'è un modo per controllare l'esistenza di questa unità (z) e se esiste per smontarlo e montarlo su una lettera diversa e utilizzare ancora l'unità z
di cui ho bisogno per il mio script, questa è una parte di un'installazione e dovrebbe essere sull'unità Z.Verifica batch se esiste un'unità di rete mappata
risposta
È possibile verificare se il convertitore di frequenza è montato con IF EXIST Z:\
. Questo dovrebbe funzionare:
if exist z:\ (
net use z: /delete
)
net use z: \\path
Un altro modo possibile potrebbe essere:
net use Z:
if %errorlevel% EQU 0 net use Z: /delete
net use Z: \\path
Io uso il seguente scriptbit Per eliminare la mappatura di tutte le unità:
:: First unmap all network drives
FOR /F "tokens=1,2,3" %%G IN ('net use^| Find "\\"') DO (
ECHO.Unmapping %%I from drive letter %%H
NET USE %%H /D > NUL
)
Che cosa fa? Dividiamolo su
FOR/F "token = 1,2,3" %% G IN() DO() -> itererà sopra il set definito tra() e la prima, la seconda e la terza parola (qualsiasi spazio bianco è usato come separatore) diventerà disponibile come %% G, %% H e %% I rispettivamente.
('...') verrà eseguito un comando ... e passare il risultato (s) per il ciclo FOR
uso netto sarà in uscita qualcosa di simile:
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK M: \\diskstation\music Microsoft Windows Network
OK P: \\diskstation\home Microsoft Windows Network
OK V: \\diskstation\video Microsoft Windows Network
OK X: \\diskstation\photo Microsoft Windows Network
The command completed successfully.
Questa uscita viene quindi inviato a Find.exe (le finestre equivalenti a grep) che cerca "\\".
Simbolo pipe | è sfuggito usando^quindi cmd non lo esegue direttamente. L'uscita sarà quindi:
OK M: \\diskstation\music Microsoft Windows Network
OK P: \\diskstation\home Microsoft Windows Network
OK V: \\diskstation\video Microsoft Windows Network
OK X: \\diskstation\photo Microsoft Windows Network
NET USE/D sarà eliminare il mapping di unità per la mappatura selezionata
Innanzitutto, questo non fa nulla per rispondere alla domanda dei posters. In secondo luogo, si interrompe se il percorso UNC remoto è lungo e causa la visualizzazione della colonna di rete su una seconda riga. Questo script è eccessivo per l'eliminazione di tutti i mapping di unità. Un modo più semplice per rimuovere tutti i mapping di unità consiste nell'utilizzare la rete */d/y. – jaylweb
Per rispondere alla domanda originale, è possibile controllare se Z è già mappato e poi ri-mappa a una lettera di unità diversa (ad esempio y :), quindi mappare z al nuovo percorso.
if exist z:\ (
for /F "tokens=1,2*" %%G in ('net use^|Find "\\"^|Find /I "z:"') do (net use y: %%H)
net use z: /delete
)
net use z: \\path
- 1. L'unità di rete non è disponibile se mappata dal servizio
- 2. jQuery: Verifica se l'immagine esiste
- 3. Verifica se esiste una risorsa
- 4. RavenDb verifica se l'indice esiste
- 5. Verifica se l'immagine dell'URL esiste
- 6. Verifica se esiste un oggetto
- 7. Verifica se il file di risorse esiste
- 8. BigQuery - Verifica se la tabella esiste già
- 9. Verifica se esiste un elemento in Goniometro
- 10. HTML5 LocalStorage: verifica se esiste una chiave
- 11. Doctrine2 Verifica se esiste un'entità correlata
- 12. Codeigniter & PHP verifica se la sessione esiste
- 13. Verifica UWP se il file esiste
- 14. Cakephp verifica se il record esiste
- 15. Verifica se l'immagine esiste in bundle - iPhone
- 16. Google firebase verifica se esiste un figlio
- 17. Verifica se esiste una inclusione (o richiesta)
- 18. Verifica se l'immagine esiste in dattiloscritto
- 19. Verifica se l'attributo ('id') esiste in jQuery
- 20. Boost PropertyTree: verifica se esiste un figlio
- 21. jQuery verifica se onClick esiste sull'elemento
- 22. Verifica se l'immagine esiste in Cache Picasso
- 23. Verifica se il sito web esiste
- 24. PL/pgSQL verifica se esiste una riga
- 25. Verifica se l'immagine esiste in Foto
- 26. - Verifica se il nome utente esiste
- 27. node.js verifica se esiste un URL remoto
- 28. jQuery: Verifica se esiste l'elemento successivo
- 29. Verifica se esiste o meno un URL
- 30. PHPExcel Verifica se il foglio esiste
Inizia con 'per/F "tokens = 1,2 *" % G ('uso netto^| Trova "\\"^| Trova/I "Z:"') do @echo% H % I' per vedere un esempio. (Usando questo in uno script batch, raddoppia il segno '%', usa' %% G', '%% H' ecc.) [Ulteriori informazioni ...] (http://ss64.com/nt/for_cmd. html). Quindi puoi sostituire il semplice '@echo %% H %% I' con [comandi multipli in FOR loop] (http://ss64.com/nt/for.html). Sentiti libero di [aggiorna la tua domanda] (http://stackoverflow.com/posts/27246899/edit) con risultati concreti e chiedi di più nel caso in cui tu gestisca qualcosa. – JosefZ
Perché non usare solo la prossima lettera di unità disponibile per distruggere la mappatura corrente degli utenti: 'net use * \\ path'. oppure è possibile utilizzare il comando PUSHD che mapperà la successiva lettera di unità disponibile e immediatamente eseguirà una directory di modifica su quel percorso: 'PUSHD \\ percorso' – Squashman