Ką reiškia %~dp0 ir kaip jis veikia?
Manau, kad %~dp0
yra labai naudingas, ir dažnai jį naudoju, kad mano paketiniai failai būtų lengviau perkeliami.
Tačiau pati etiketė man atrodo labai mįslinga... Ką daro ~~
? Ar dp
reiškia diską ir kelią? Ar 0
reiškia %0
- paketinio failo kelią, kuriame yra failo pavadinimas?
O gal tai tiesiog keista etiketė?
Taip pat norėčiau sužinoti, ar tai dokumentais patvirtinta funkcija, ar kažkas, kas linkęs būti atšauktas.
964
3
Skambutis
komandinėje eilutėje pateikiama pagalba apie šią sintaksę (ją galima naudoti ir už FOR ribų, tai tik vieta, kur galima rasti pagalbą).
Galima naudoti įvairias raides, pavyzdžiui,
f
- "pilnas kelio pavadinimas",d
- disko raidė,p
- kelias, ir jas galima derinti.%~
yra kiekvienos iš šių sekų pradžia, o skaičiusI
reiškia, kad ji veikia parametrui%I
(kur%0
yra pilnas partijos failo pavadinimas, kaip ir manėte).(Pirmiausia norėčiau rekomenduoti šią naudingą nuorodų svetainę, skirtą partijai: http://ss64.com/nt/)
Tada tik dar vienas naudingas paaiškinimas: http://htipe.wordpress.com/2008/10/09/the-dp0-variable/
Ir aiškesnę nuorodą čia:
%CmdCmdLine%
grąžins visą komandų eilutę, perduotą CMD.EXE%*
grąžins likusią komandos eilutės dalį, pradedant pirmuoju komandos eilutės argumentu (Windows NT 4 sistemoje %* taip pat apima visus pradinius tarpus)%~dn
grąžins %n disko raidę (n gali būti nuo 0 iki 9), jei %n yra galiojantis kelias arba failo vardas (be UNC)%~pn
grąžins %n katalogą, jei %n yra galiojantis kelias arba failo vardas (ne UNC)%~nn
grąžins tik %n failo vardą, jei %n yra galiojantis failo vardas%~xn
grąžins tik %n failo plėtinį, jei %n yra galiojantis failo vardas%~fn
grąžins visiškai kvalifikuotą %n kelią, jei %n yra galiojantis failo vardas arba katalogasADD 1
Ką tik radau gerą nuorodą apie paslaptingąjį
~~
tilde operatorių.%~
eilutė vadinama procentų tilde operatoriumi. Jį galite rasti tokiose situacijose, pvz:%~0
.:~
eilutė vadinama dvitaškio tilde operatoriumi. Jį galite rasti taip: `%%SOME_VAR:~0,-1%``.PRIDĖTI 2 - 13:12 VAL. 7/6/2018
%1-%9
reiškia komandinės eilutės argumentus. Jei jie yra ne galiojančios kelio reikšmės,%~dp1
-%~dp9
išsiplės į tą pačią reikšmę kaip ir%~dp0
. Tačiau jei jie yra galiojančios kelio reikšmės, jie išsiplės į savo tvarkyklės/kelio reikšmę.Pavyzdžiui: (batch.bat)
Vykdyti 1:
2 rungtis:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true
Kintamasis
%0
paketiniame scenarijuje nustatomas kaip vykdomo paketinio failo pavadinimas. Specialioji sintaksė~dp
tarp%
ir0
iš esmės sako, kad kintamąjį%0
reikia išplėsti ir parodyti disko raidę ir kelią, todėl gaunamas dabartinis katalogas, kuriame yra paketinis failas!