Jeg skriver for øyeblikket en .bat-batchfil som kjører en installasjonsfil. Før den kjører installasjonsfilen, sjekker jeg om katalogen finnes for å unngå å installere programmet på nytt.
Dette gjør jeg ved hjelp av en If Not Exist filename
-setning. Hvis den installerte filen ikke finnes, kjører jeg installasjonsfilen.
Av en eller annen grunn, når jeg tester det med applikasjonen der den allerede er installert, prøver den fortsatt å installere applikasjonen på nytt over den.
Her er et utdrag av koden min:
cd "C:\Documents and Settings\John\Start Menu\Programs\"
pause
If NOT exist "Software Folder"\ (
start \\filer\repo\lab\"software"\"myapp"\setup.exe
pause
)
Der SoftwareFolder
er en underkatalog i "C:\Documents and Settings\John\Start Menu\Programs\".
Jeg sjekker om den finnes i mappen Programs
.
Jeg vet at det ikke er noe galt med start
-kommandoen. Jeg har en følelse av at det er noe galt med startkommandoen CD
eller en av dens parametere.
Tusen takk, folkens!
Jeg har lagt merke til noen problemer med dette som det kan være nyttig for en nybegynner eller en litt uerfaren bruker å kjenne til. For det første...
CD /D "C:\Documents and Settings\%username%\Start Menu\Programs\"
to ting, det ene er at en /D etter CD-en kan vise seg å være nyttig for å sikre at katalogen er endret, men det er egentlig ikke nødvendig, for det andre, hvis du skal sende dette fra bruker til bruker, må du legge til, i stedet for navnet ditt, koden %username%, dette gjør at koden kan brukes på hvilken som helst datamaskin, så lenge de har setup.exe-filen på samme sted som du har på din datamaskin. det er selvfølgelig vanskeligere å sikre det. Dessuten...
start \\filer\repo\lab\"software"\"myapp"\setup.exe
startkoden her kan settes opp på denne måten, men den korrekte syntaksen er
start "\\filter\repo\lab\software\myapp\" setup.exe
Dette vil kjøre: setup.exe, som du finner i: \filter\repo\lab...etc.\
Som i svaret fra Escobar Ceaser, foreslår jeg at du bruker anførselstegn rundt hele banen. Det er den vanlige måten å pakke hele banen inn i "", ikke bare separate katalognavn i banen.
Jeg hadde et lignende problem at det ikke fungerte for meg. Men det var ikke mulig å bruke "" i banen for separate katalognavn fordi banen inneholdt miljøvariabler, som i seg selv dekker mer enn ett kataloghierarki. Konklusjonen var at jeg manglet mellomrommet mellom det avsluttende " og (
Den riktige versjonen, med mellomrom før parentesen, ville vært følgende
If NOT exist "C:\Documents and Settings\John\Start Menu\Programs\Software Folder" (
start "\\filer\repo\lab\software\myapp\setup.exe"
pause
)