File batch untuk mengganti lokasi disk yang dipetakan

0

Saya harus mengganti disk yang dipetakan karena saya bekerja di dua server dan tidak ingin mengubah jalur yang disimpan dalam file yang saya modifikasi.

Secara umum kedua lokasi dipetakan sebagai P: di perusahaan saya.
Saya hanya ingin tahu bagaimana melakukan hal seperti itu. Bisakah saya mendapatkan bantuan Anda?

Saya punya dua penggunaan bersih:

NET USE P: /d
NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
NET USE P: \\SEXXXXX\Projekt\

Saya menjalankan skrip untuk memetakan sebagai huruf P:

  1. jika tidak ada drive yang dipetakan dengan script P: lakukan katakanlah yang pertama

    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
    
  2. jika sudah ada drive yang dipetakan sebagai P: skrip mengatur penggunaan jaringan aktual sebagai huruf L: dan set kedua sebagai P: dan ketika saya menjalankan skrip ini lagi itu mengubah lokasi untuk drive yang dipetakan L dan P, seperti di dalamnya hanya mengubahnya.

Saya menggunakan dua skrip batch sederhana sekarang yang terlihat seperti di atas, tetapi saya tahu adalah mungkin untuk menggunakan beberapa kondisi untuk membuatnya bekerja lebih baik.

Tidak penting bagi saya apakah itu skrip kelelawar atau vbs atau apa pun yang ingin saya lakukan dengan menjalankan satu ikon.

EDIT: Saya sudah mencoba variasi Anda dan mungkin saya tidak cukup jelas. Kedua lokasi (server) tersedia setiap saat tetapi saya harus beralih di antara mereka. Sekali saya bekerja di server lokal saya dan sekali di server asing. Tapi keduanya dipetakan sebagai P: (untuk setiap pengguna) jadi saya perlu melakukan switch (tergantung dari proyek apa yang saya kerjakan sekarang). Saya dapat menganggap prioritas seperti yang Anda sarankan (tetapi tidak ada masalah besar jika saya dapat mengubahnya dengan menjalankan kembali skrip). Pokoknya terima kasih atas usaha Anda.

Saya menjalankan skrip dan kemudian:

kasus 1a: Saya punya disk yang dipetakan seperti di bawah ini

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

ketika skrip selesai - cukup alihkan ke:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

kasus 1b: (saya menjalankan skrip lagi) jadi saya sudah mulai:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

setelah saya jalankan lagi akan kembali untuk memulai

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

kasus 2: (saya tidak punya P: drive) yang dipetakan skrip lakukan pemetaan

P: \\PLKRKXXXX.XXX.XX\Assignment
Krzysztof Psujek
sumber

Jawaban:

1

Bagaimana dengan pendekatan ini.

Jelas bahwa jika Anda hanya memiliki satu jaringan yang tersedia Anda ingin dipetakan P: Sekarang Anda perlu memutuskan prioritas. Drive mana yang Anda petakan P: ketika kedua jaringan berbagi tersedia? Mari kita asumsikan Anda memutuskan itu \\SEXXXXX\Projekt\ mendapat prioritas berakhir \\PLKRKXXXX.XXX.XX\Assignment

Maka cukup gunakan:

NET USE P: /DELETE
NET USE L: /DELETE
NET USE P: \\SEXXXXX\Projekt\ && NET USE L: \\PLKRKXXXX.XXX.XX\Assignment || NET USE P: \\PLKRKXXXX.XXX.XX\Assignment

Kuncinya di sini adalah penggunaan eksekusi bersyarat dengan && dan ||

Art Gertner
sumber
0

Kamu bisa memakai exist untuk memeriksa apakah ada huruf drive:

if exist P: (
    echo Drive P exists 
    NET USE P: /d
    NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
    NET USE P: \\SEXXXXX\Projekt\
) else (
    echo Drive P does not exist
    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
)
Berend
sumber