10 tipp a használata forgatókönyvek

1. Ha lehetséges, használja a környezeti változók
Egy változó a script, arra a következtetésre jutunk, hogy a változó neve közötti százalékos jelek (%), és amikor a szkript lefut, a százalék jel és a szöveg között helyébe a változó értékeit. A változók használatával teszi a script kód sokoldalúbb, így jobb esélye van a sikeres munka különböző számítógépeken. Például, a forgatókönyvet a héj nem kellene kemény kódot a Windows telepítési könyvtárat. Ehelyett egy változót SystemRoot, ami mindig pont egy bizonyos Windows telepítési könyvtár. Tehát, a csapat
Echo% SystemRoot%

Mivel ez a helyzet más környezeti változók, ezek a változók százalékos jelek. Például a következő sorban a script megjelenik az aktuális dátum és idő:
Echo .olt %% TIME%

A legtöbb pótlások eltérő szintaxis parancsszintaxisban a helyen, ahol azok rendelkezésre állnak, így akkor meg kell változtatni a forgatókönyvet kell.

3. A cmd.exe shell használja .cmd meghosszabbítása
Batch file Command.com szükséges bővítési .bat. Cmd.exe shell is használhatja a kiterjesztés .bat, de egy erősebb makrónyelvet cmd.exe sok csapat összeegyeztethetetlen Command.com. Így. bat fájlt, írt a cmd.exe sikertelen lehet, ha a felhasználó megpróbálja végrehajtani a Command.com (mint például a Windows 98). Az egyik módja annak, hogy elkerüljük ezt a problémát, hogy egy .cmd kiterjesztése a forgatókönyvet. Mivel Command.com nem ismeri fel a kiterjesztését .cmd, egyszerűen nem fogja futtatni a batch fájlt, ha a név végződik .cmd.

4. Győződjön meg arról, hogy a szükséges bináris hozzáférhető
Ha a szkript használja a programot, amely nem része a standard operációs rendszer telepítés, meg kell győződnie arról, hogy az összes ilyen programok álltak rendelkezésre. Azt is dokumentálja ezeket a függőségeket a szkripteket. Azt javaslom, hogy biztosítsák a rendelkezésre álló bináris hogy őket ugyanabban a könyvtárban a forgatókönyvet. Ezután a szintaxis használt futtatni őket
„%

ahol exename - a neve a végrehajtható futtatni kívánt. szintaxis%

dp0 vissza a meghajtó, elérési út és fájlnév az aktuális script idézőjelek nélkül. A következtetés az egész szöveg idézőjelbe használata biztosítja a forgatókönyv, akkor is, ha a neve a fájl vagy könyvtár, amelyben a script tartalmaz idézőjelbe.

5. Helyes használat dupla idézőjelek
Úgy tűnik, hogy a dupla idézőjelek ( „) gyakori zavarok forrása azoknak, akik írni szkripteket. Dupla idézetek - ez csak egy módja annak, hogy azonosulni terek parancssori paramétereket. Például a jobb első pillantásra a parancssor
dir C: \ Program Files

valóban ad két érv Dir parancs: C: \ Program Files és. Ahhoz, hogy a szándékát, hogy átmenjen egy parancsargumentum a C: \ Program Files (szóközökkel együtt), akkor csatolnia kell az idézőjelek közé:
dir «C: \ Program Files»

Az idézőjel nem része a mappa neve. Ezek jelentése a Dir parancs, a szöveg között az egyik érv.

Forgatókönyvek a parancs processzor is támogatja a parancssori paramétereket. Ahhoz, hogy használni parancssori paraméterei a script, akkor engedélyezze a felvételi% n (ahol n - szám 0-9). Ez a rekord az úgynevezett helyettesítő paraméter (vagy paraméter). Például, a forgatókönyvet felváltja a% 1 parancssor első argumentum% 2 - a második érv, stb Amellett, hogy a paraméterek a% 1% 9% 0 helyettesíti a szkript nevét,% * helyébe a teljes parancsfájl karakterlánc (kivéve a script neve.). . Itt említem meg parancssori mert amikor cmd.exe helyettesíti beállítások 1% -ról 9% -ra megfelelő parancssori elhagyja a dupla idézőjel, ha azok az érvelés. A nyilvánvaló következtetés: a script beállítása mindig idézőjelbe, ha szóközt tartalmaz. Ez a megfigyelés az alapja egy néhány egyszerű szabályt, gondosan kövesse, amit szinte teljesen megszünteti a problémát idézetek.
  • Ne használjon belül idézi forgatókönyv paraméterek (1% -ról 9%), mert az idézeteket. Ha szeretné használni a paramétert, ha a csapat, akkor eltérő karakterek idézetek (pl fogszabályozó), hogy ne szintaktikai hiba. A következő sor fog működni, még akkor is, ha az első argumentum (% 1) tartalmaz idézetek:

    Kivételt képez ez alól, ha használjuk a szintaxis%

    n, hogy távolítsa el idézetek paraméter (lásd. a következő szabályt).
  • Ne tegye idézetek belsejében egy környezeti változó. Hiányosságok a környezeti változók megengedett, idézetek nem szükséges. Ha azt szeretnénk másolni a paraméter egy változó, akkor a szintaxis%

    n (ahol n - száma 1-től 9), amely visszatér a paraméter nélküli idézetek. Például a húr
    Állítsa DATAFILE =%

    1
    másolja az első paraméter a script (idézőjelek nélkül) a variábilis DATAFILE. Kivételt képez az eset, amikor létrehozza a szöveget idézőjelbe, amely átkerül a másik csapat.

  • Ne felejtsük el, amikor szükség van rá, hogy a környezeti változók idézőjelben. Vegyük például az alábbi sort a script:
    Állítsa TARGET =%

    Ezek közül az első sorokban másolatok második érv a script változó cél, eltávolítja idézetek. A második sor szintaktikailag helyes, mert a paraméter% 1 már idézőjelbe, ha szóközt tartalmaz, és a TARGET változót kell említeni, mert tartalmazhatnak szóközt.

    6. setlocal csapat és Endlocal
    Setlocal parancs átmásolja az összes környezeti változót és Endlocal parancs visszaállítja az összes változók értékeit, hogy ők a parancsfájl futtatása előtt. Endlocal is eltávolítja a változók által létrehozott script. Mindkét csapat teszi a forgatókönyvet több független és biztosítja, hogy a forgatókönyvet „kitakarítja után szemetet” visszaállításával környezeti változók eredeti értékükre, és távolítsa el változók olyan szkriptet.

    Ön is használja a parancsot setlocal Enableextensions, hogy pontosan tudja, hogy mit terjeszkedés csapatok szerepelnek. Expansion csapatok -, hogy javítsa a csoport belső parancsok cmd.exe (például Ha, Call), amely további funkciók, mint a csapatok Command.com, amelyek ugyanazokat a neveket. Expansion csapatok alapértelmezés szerint engedélyezve vannak, de azon ritka alkalmakkor, amikor ki van kapcsolva, setlocal Enableextensions csapat biztosítja felvételét tágulási csapat. Ahhoz, hogy minél több információt a kiterjesztett parancs, írja be a parancssorba a CMD /?.

    7. A szükség szimbólum Escape
    Cmd.exe használja a kalap (^) jeleként törölte a speciális értelmében fenntartott shell karaktereket. Például a jel () egy elválasztó parancs - ez lehetővé teszi, hogy több parancsot egy sorban. Ha a használni kívánt ampersand egy normális, a szó szoros értelmében, meg kell „semmisítse meg” speciális jelentését azáltal, hogy ezeket előtt a ^ jellel. Így, összhangban
    Echo A ^ karakter
    A parancs szeparátor

    ^ Jel hatására a shell, hogy megszünteti a rendes értelmezése a következő karakter neki. Különleges karakterek karakterek () <> ^ |. Nincs szükség a jele visszavonását, ha ezeket a szimbólumokat a húr idézőjelbe.

    8. Ne használja a Kilépés parancs nélkül / b
    Anélkül, hogy a / b Kilépés parancs bezárja az aktuális shell. Ha valaki elindítja cmd.exe és végrehajt egy script, amely tartalmazza a kilépési parancs az aktuális ülésén a héj zárja hirtelen. Csapat Kilépés / b lezárja a jelenlegi forgatókönyv, anélkül, hogy bezárná az aktuális shell ülésen. Ha szeretne többet megtudni az Exit parancsot, írja be a következő parancsot ki /?.

    9. A parancs Ha ERRORLEVEL óvatosan
    Ha ERRORLEVEL csapat ellenőrzi a kód az utolsó parancsot, amelynek végrehajtása befejeződött. Script viselkedése függ az eredmény a ellenőrző kódot a program befejeződik. Vegyük például a következő eset:
    Myprogram
    Ha ERRORLEVEL 1 Goto: ERROR

    Goto parancs ezeket a sorokat fogják elvégezni, ha Myprogram.exe vissza befejezése kód nagyobb vagy egyenlő 1 Más szóval, «Ha ERRORLEVEL n» nem jelent „, ha az utolsó kódot a program befejezése pontosan megegyezik n»; sőt, ez a feltétel azt jelenti, „ha az utolsó a program végén a kód nem kevesebb, mint n». Mivel ez a viselkedés, szükséges, hogy ellenőrizze a kódot a program befejezése csökkenő sorrendben (a legnagyobbtól a legkisebb). Ahhoz, hogy ellenőrizze az adott érték a kódot a program befejeződött, Dinamikus változók helyett ERRORLEVEL Ha ERRORLEVEL csapat. Meg kell szem előtt tartani, hogy ha ERRORLEVEL parancs abban különbözik a ERRORLEVEL változó, áll a lista a táblázatban. 1. Ha ERRORLEVEL parancs visszafelé kompatibilis Ha ERRORLEVEL parancsot Command.com; ERRORLEVEL változó csak a cmd.exe.

    10. Tekintsük a funkciók a start parancs
    Start parancs elindítja a programot vagy parancsot egy új konzolt. Azonban, ha megpróbálja futtatni a programot tartalmazó mappát terek (vagy ha a program neve szóközt tartalmaz), Start parancs viselkedés nem felel meg az elvárásoknak. Például a következő parancsot:
    Kezdet «C: \ Program Files \ Microsoft
    Office \ Office11 \ Winword.exe »

    Microsoft Word nem fut a várakozással ellentétben. Ehelyett a csapat, megnyílik egy új munkamenet indítása cmd.exe, ami a konzolt cím egy idézett szöveg. Ez a viselkedés azzal magyarázható, hogy a Start parancs az első sorban idézőjelben annak parancssorban a konzol ablak címét.

    Kerülő furcsasága, használjon egy pár idézőjelbe, hogy jelezze egy üres fejléc, majd egy sor kódot futtatni kívánt. Helyes Start program a következőképpen néz ki:
    Kezdés «» «C: \ Program Files \ Microsoft
    Office \ Office11 \ Winword.exe »

    Csak nem lehet előre látni



    Cmd.exe shell script használják nagyon széles körben. Miután elsajátította ezt a cikket ajánlásokat, akkor képes lesz arra, hogy építsenek több megbízható forgatókönyvek és elkerülni a leggyakoribb problémákat.

    Kapcsolódó cikkek