Saat ini saya sedang menulis file batch .bat yang mengeksekusi file instalasi. Sebelum menjalankan file instalasi, saya memeriksa untuk melihat apakah direktori tersebut ada untuk menghindari instalasi ulang aplikasi.
Saya melakukan ini dengan menggunakan pernyataan Jika Tidak Ada nama file
. Jika file yang terinstal tidak ada, saya kemudian mengeksekusi file instalasi.
Untuk beberapa alasan, ketika saya mengujinya dengan aplikasi yang sudah diinstal, ia masih mencoba menginstal ulang aplikasi di atasnya.
Berikut adalah cuplikan kode saya:
cd "C:\Documents and Settings\John\Start Menu\Programs\"
pause
If NOT exist "Software Folder"\ (
start \\filer\repo\lab\"software"\"myapp"\setup.exe
pause
)
Di mana SoftwareFolder
adalah subdirektori dari "C:\Documents and Settings\John\Start Menu\Programs\".
Saya memeriksa untuk melihat apakah itu ada di folder Programs
saya.
Saya tahu tidak ada yang salah dengan perintah start
saya. Saya merasa ada yang salah dengan perintah CD
awal saya atau salah satu parameternya.
Terima kasih banyak, teman-teman!
Saya melihat beberapa masalah dengan ini yang mungkin berguna bagi seseorang yang baru memulai, atau pengguna yang belum berpengalaman, untuk mengetahuinya. Pertama...
CD /D "C:\Documents and Settings\%username%\Start Menu\Programs\"
dua hal pertama adalah bahwa /D setelah CD mungkin terbukti berguna dalam memastikan direktori diubah tetapi itu tidak benar-benar diperlukan, kedua, jika Anda akan meneruskan ini dari pengguna ke pengguna, Anda harus menambahkan, alih-alih nama Anda, kode %username%, ini membuat kode dapat digunakan di komputer mana pun, selama mereka memiliki file setup.exe di lokasi yang sama seperti yang Anda lakukan di komputer Anda. tentu saja memastikan hal itu lebih sulit. juga...
start \\filer\repo\lab\"software"\"myapp"\setup.exe
kode awal di sini, dapat diatur seperti itu, tetapi sintaks yang benar adalah
start "\\filter\repo\lab\software\myapp\" setup.exe
Ini akan menjalankan: setup.exe, terletak di: \filter\repo\lab...etc.\
Seperti jawaban Escobar Ceaser, saya sarankan untuk menggunakan tanda kutip di sekeliling seluruh path. Ini adalah cara yang umum untuk membungkus seluruh path dalam "", tidak hanya memisahkan nama direktori di dalam path.
Saya memiliki masalah yang sama yang tidak'tidak bekerja untuk saya. Tetapi tidak ada pilihan untuk menggunakan "" di dalam path untuk nama direktori yang terpisah karena path berisi variabel lingkungan, yang mencakup lebih dari satu hirarki direktori. Kesimpulannya adalah bahwa saya melewatkan spasi antara penutup " dan (
Versi yang benar, dengan spasi sebelum tanda kurung, adalah
If NOT exist "C:\Documents and Settings\John\Start Menu\Programs\Software Folder" (
start "\\filer\repo\lab\software\myapp\setup.exe"
pause
)