精選條目

手冊:/execute

出自Minecraft基岩版开发Wiki
命令 > /execute
execute
用法旗標
普通命令(0)
可見性旗標
可見(0)
同步旗標
同步命令(0)
執行旗標
允許執行(0)
型別旗標
無型別(0)
作弊旗標
作弊命令(0)
遊戲內描述

代表一個或多個實體執行命令。

/execute命令可以變更執行者和執行位置,然後執行命令。

版本[編輯]

本地玩家將預設使用最新版本的命令語法。附加包將透過清單檔案中的最低引擎版本來判斷該附加包中的/execute命令使用的命令版本。最低引擎版本是一種語義版本,由語義版本轉化為命令版本的映射如下表所示。

目前命令版本列舉
鍵名 對應的引擎版本 描述
Invalid -1 N/A 無效
Initial 1 N/A 初始版本
TpRotationClamping 2 N/A /tp的旋轉角進行鉗制
NewBedrockCmdSystem 3 N/A 引入新的基岩版命令系統
ExecuteUsesVec3 4 N/A /execute使用Vec3
CloneFixes 5 N/A /clone問題修復
UpdateAquatic 6 N/A 海洋更新
EntitySelectorUsesVec3 7 N/A @e選擇器使用Vec3
ContainersDontDropItemsAnymore 8 1.8.0 容器不再跌落物品
FiltersObeyDimensions 9 1.9.0 過濾器遵循所在維度
ExecuteAndBlockCommandAndSelfSelectorFixes 10 1.13.0 /execute、方塊相關命令和@s選擇器問題修復
InstantEffectsUseTicks 11 1.15.0 立即傷害立即治療持續時間改用刻數
DontRegisterBrokenFunctionCommands 12 1.16.0 不再註冊對應函式有問題的命令
ClearSpawnPointCommand 13 1.16.100 /clearspawnpoint命令
CloneAndTeleportRotationFixes 14 1.16.210
TeleportDimensionFixes 15 1.16.220
CloneUpdateBlockAndTimeFixes 16 1.17.30
CloneIntersectFix 17 1.17.40
FunctionExecuteOrderAndChestSlotFix 18 1.18.10
NonTickingAreasNoLongerConsideredLoaded 19 1.18.20
SpreadplayersHazardAndResolvePlayerByNameFix 20 1.19.0
NewExecuteCommandSyntaxExperimentAndChestLootTableFixAndTeleportFacingVerticalUnclampedAndLocateBiomeAndFeatureMerged 21 1.19.10 新版/execute進入實驗性玩法
WaterloggingAddedToStructureCommand 22 1.19.20
SelectorDistanceFilteredAndRelativeRotationFix 23 1.19.30
NewSummonCommandAddedRotationOptionsAndBubbleColumnCloneFix 24 1.19.40
NewExecuteCommandReleaseEnchantCommandLevelFixAndHasItemDataFixAndCommandDeferral 25 1.19.50 新版/execute走出實驗性玩法
ExecuteIfScoreFixes 26 1.19.60
ReplaceItemAndLootReplaceBlockCommandsDoNotPlaceItemsIntoCauldronsFix 27 1.19.70
ChangesToCommandOriginRotation 28 1.19.70 移除方塊相關命令的與數據值有關的多載
RemoveAuxValueParameterFromBlockCommands 29 1.19.70
VolumeSelectorFixes 30 1.19.70
EnableSummonRotation 31 1.19.70
SummonCommandDefaultRotation 32 1.19.70
PositionalDimensionFiltering 33 1.19.80
CommandSelectorHasItemFilterNoLongerCallsSameItemFunction AgentSweepingBlockTest 34 1.20.0
35 1.20.10
36 1.20.30
37 1.20.60
38 1.20.70

版本28語法中,execute分為了許多子命令,有如下3類,11條子命令,共18個多載:

修飾子命令:修改命令變數和命令的執行方式,從而以特定的執行者、執行位置、執行維度、執行座標執行命令。修飾子命令有8條: alignanchoredasatfacing (entity)inpositioned (as)rotated (as)
條件子命令:當特定條件成立或不成立時,執行命令或透過檢測。條件子命令有2條:ifunless
執行子命令:執行對應的命令。執行子命令為run
Java版中還具有儲存子命令(store),但基岩版中尚未加入。

子命令之間可以互相套用(除了run)。命令必須以條件子命令或執行子命令收尾,否則會報錯。對於多個子命令,遊戲將從前往後處理這些子命令,例如下面兩個命令的意義就是不同的:

/execute positioned ~ ~ ~ as @e run tp @s ~ ~ ~ - 將所有實體傳送到執行者的位置
/execute as @e positioned ~ ~ ~ run tp @s ~ ~ ~ - 將所有實體傳送到其原位

[chainedCommand: ExecuteChainedOption_0]表示下一個子命令的開始。對於條件子命令,該參數是可選的;對修飾子命令,這參數是必選的。

多載[編輯]

修飾子命令部分
  1. execute align <axes: string> <chainedCommand: ExecuteChainedOption_0>
  2. execute anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  3. execute as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  4. execute at <origin: target> <chainedCommand: ExecuteChainedOption_0>
  5. execute facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  6. execute facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  7. execute in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
  8. execute positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  9. execute positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  10. execute rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
  11. execute rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
條件子命令部分
  1. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
  2. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]
  3. execute <subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
  4. execute <subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
  5. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
  6. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
執行子命令部分
  1. execute run <command: command>

參數與範例[編輯]

align變更執行座標為方塊座標(且向下取整)。

語法[編輯]

align <axes: string> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

axes 軟列舉參數
string型別,必選,為xyz的任意不重複組合,不考慮順序。例如xxzyxxzy等。
chainCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute align xyz run summon armor_stand ~ ~ ~ - 在執行者的方塊位置召喚一個盔甲座(可用於召喚在方塊中心而不偏移)
execute positioned 19.58 88.78 13.26 align zy run tp @s ~ ~ ~ - 將執行者傳送至(19.58,88.00,13.00)。

anchored變更執行位置為執行者的眼部或腳部,預設為腳部。

語法[編輯]

anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

eyes|feet 列舉參數
必選,變更執行位置為執行者的眼部或腳部。
chainCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute as @e[type=armor_stand] anchored eyes run tp @s ~ ~ ~ - 將盔甲座傳送至其眼部的位置。

as變更命令的執行者。

語法[編輯]

as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

origin 基本參數
target型別,必選,指定執行者。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute as @a if block ~ ~ ~ air - 檢測是否有玩家所處位置為空氣
execute as @e run setblock ~ ~-1 ~ redstone_block - 在所有實體腳下放置鑽石磚。

at變更命令的執行位置和執行維度為規定實體的位置和維度。

語法[編輯]

at <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

origin 基本參數
target型別,必選,指定命令的執行位置和執行維度為規定實體的位置和維度。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute as @a at @s run tp @s ~ ~5 ~ - 將所有玩家傳送至其上方5格的位置
execute at @s run playsound random.orb @a ~ ~ ~ - 以執行者為音源播放經驗球音效。

facing變更命令的執行朝向為規定座標或實體。

語法[編輯]

facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

position 基本參數
x y z型別,必選,指定命令的執行朝向為特定座標。必須為有效的座標。
origin 基本參數
target型別,必選,指定命令的執行朝向為特定實體。
eyes|feet 列舉參數
必選,變更執行朝向為指定實體的眼部或腳部。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute as @a[tag=a] facing 0 64 0 run tp @s ^^^1 - 令帶標籤a的玩家朝着(0,64,0)移動1格。
execute as @a[tag=a] facing entity @e[type=zombie,c=1] feet run tp @s ^^^1 - 令帶標籤a的玩家朝着附近的殭屍移動1格。

in變更命令的執行維度。

語法[編輯]

in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

dimension 列舉參數
Dimension型別,必選,指定命令的執行維度。可以為netheroverworldthe_end中的一個。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute in the_end run tp @s 0 128 0 - 傳送執行者到終界的(0,128,0)。
execute in nether run setblock 0 0 0 air - 在地獄的(0,0,0)放置空氣(對應區域必須存在常載入區域)。

positioned變更命令的執行位置為規定實體的位置,和at的區別在於其不會修改執行維度。

語法[編輯]

positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

position 基本參數
x y z型別,必選,指定命令的執行位置為特定座標。
origin 基本參數
target型別,必選,指定命令的執行位置為規定實體的位置。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute positioned ~ ~ ~ run tp @a ~ ~10 ~ - 將所有玩家傳送到執行者上方10格(可在命令方塊執行,因其修改執行座標不需要用到@s)。
execute as @a positioned ~ ~ ~ run tp @s ~ ~10 ~ - 將所有玩家傳送到其上方10格。
execute as @a positioned as @s run tp @s ~ ~5 ~ - 將所有玩家傳送至其上方5格的位置
execute positioned as @s run playsound random.orb @a ~ ~ ~ - 以執行者為音源播放經驗球音效。(命令方塊不可執行)

rotated變更命令的執行朝向為規定位置,或規定實體的朝向。需要注意,rotated僅改變執行朝向,而不改變執行者的朝向以及執行位置。

語法[編輯]

rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

yaw 基本參數
value型別,必選,指定水平旋轉角度。正北方為-180.0,正東為-90.0,正南為0.0,正西為90.0,正北以西為179.9,之後回到-180.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
pitch 基本參數
value型別,必選,指定垂直旋轉角度。豎直上方為-90.0,至豎直下方90.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
origin 基本參數
target型別,必選,指定執行朝向為規定實體的朝向。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute rotated 0 0 run tp @a ^ ^ ^1 - 向南方的水平方向將所有玩家傳送1格。
execute as @a rotated @e[type=zombie,c=1] run tp @s ^ ^ ^1 - 以玩家附近的殭屍的朝向方向將該玩家傳送1格。

ifunless是條件子命令,可用於對特定條件進行檢測或者作為命令執行的限制條件。if意為如果...就...,如果檢測成功那麼就透過檢測;unless意為除非...否則...,如果檢測成功那麼就導致檢測不透過(類似非門)。


條件子命令的功能與/testfor/testforblock/testforblocks/scoreboard players test ...基本一致(事實上更強)。


現在的條件子命令支援4項檢測:

(if|unless) block - 檢測單個方塊(即/testforblock
(if|unless) blocks - 檢測一個區域(即/testforblocks
(if|unless) entity - 檢測實體(即/testfor
(if|unless) score - 檢測目標分值(即/scoreboard players test,事實上if score更強些)


語法如下所示。

(if|unless) block[編輯]

(if|unless) block檢測規定位置是否為規定方塊。

語法[編輯]

<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為ifunless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
position 基本參數
x y z型別,必選,指定待檢測位置。若填寫相對座標,則命令的執行位置以執行者的位置為參考。必須為有效的座標
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
blockStates 基本參數
block states型別,必選。指定待檢測方塊的方塊狀態。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if block 0 -64 0 bedrock - 檢測(0,-64,0)是否為基岩(等效於/testforblock 0 -64 0 bedrock)。
execute if block 560 51 8 wool ["color":"red"] - 檢測(560,51,8)是否為紅色羊毛(等效於/testforblock 560 51 8 wool 14)。
execute unless block 114 -27 81 redstone_block run give @a diamond - 當(114,-27,81)為紅石磚時,給予所有玩家一顆鑽石。

(if|unless) blocks[編輯]

(if|unless) blocks檢測規定區域是否和另一區域一致。

語法[編輯]

<subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
beginend 基本參數
x y z型別,必選,指代源區域的兩個對角方塊位置。必須為有效的座標
destination 基本參數
Block型別,必選,對照區域的西北下角位置(即xyz座標均為最小的位置)。
scan mode 列舉參數
BlocksScanMode型別,必選(相對應的,/testforblocks的對應參數為可選)。指定掃描模式,必須為all(檢測所有方塊是否全部匹配,包括空氣)或masked(檢測目標區域的方塊和源區域的非空氣方塊是否匹配)
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if blocks 14 57 -69 14 57 -69 36 90 56 all - 檢測(14,57,-69)和(36,90,56)兩個方塊的位置是否完全匹配(等效於/testforblocks 14 57 -69 14 57 -69 36 90 56)。
execute unless blocks 89 55 14 98 36 76 57 45 -13 all run setblock 11 14 13 wool 14 - 當(89,55,14)和(98,36,76)所圍區域不完全和(57,45,-13)匹配時,在(11,14,13)放置紅色羊毛。

(if|unless) entity[編輯]

(if|unless) entity檢測是否存在規定實體。

語法[編輯]

<subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID。
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if entity @e[type=zombie] - 檢測是否有殭屍(等效於/testfor @e[type=zombie])。
execute unless entity @a[scores={level=27}] - 當不存在計分板level上為27分的玩家時,執行成功。
execute if entity @e[type=snowball] run setblock 15 15 20 redstone_block - 當世界中存在積雪球時,在(15,15,20)放置紅石磚。

(if|unless) score[編輯]

(if|unless) score檢測目標分數是否滿足特定條件。其中score ...進行兩者分數的比較;而score ... matches ...則檢測單個目標的分數是否符合特定條件。

語法[編輯]

<subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

對於if score ...
subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective(前者) 基本參數
string型別,必選,指定追蹤待檢測實體分數的記分項。
operation 列舉參數
compare operator型別,必選,待檢測實體和源實體進行分數比較時,該參數將指定比較指標。只能為以下5種:
= - 當待檢測實體和源實體分值一致時,檢測透過
> - 當待檢測實體大於源實體分值時,檢測透過
>= - 當待檢測實體大於等於源實體分值時,檢測透過
< - 當待檢測實體小於源實體分值時,檢測透過
<= - 當待檢測實體小於等於源實體分值時,檢測透過
source 基本參數
target型別,必選,指定源實體。必須為有效的實體ID或假名。
objective(後者) 基本參數
string型別,必選,指定追蹤源實體分數的記分項。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。


對於if score ... matches ...:
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective 基本參數
string型別,必選,指定追蹤待檢測實體分數的記分項。
range 基本參數
integer range型別,必選,檢查待檢測實體的分數是否滿足特定範圍。以数字..数字的形式指定範圍,支援"!"反選。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute if score @s board >= @r board - 當自己在board上的分數大於等於另一位隨機玩家在board上的分數時,檢測透過。
execute as @e[type=zombie,c=1] unless score @s a = @e[type=villager,c=1] a run kill @s - 當附近的一隻殭屍在a上的分數不等於附近的一隻村民在a上的分數時,殺死該殭屍。
execute if score @s board matches 1..5 - 當自己在board上的分數在[1,5]分上時,檢測透過。
execute if score @e[type=zombie,c=1] matches !6..10 - 當附近的一隻殭屍在a上的分數不在[6,10]分上時,檢測透過。
execute unless score @a[tag=gaming] a matches ..2 run setblock 12 34 56 air - 當帶有gaming標籤的玩家的分數不小於等於2分時(即大於2分時),在(12,34,56)放置空氣。(事實上這個檢測部分也和execute if score @a[tag=gaming] matches 3..以及execute if score @a[tag=gaming] matches !..2等效)

run執行命令。

語法[編輯]

run <command: command>

參數[編輯]

command 基本參數
command型別,必選,指定要執行的命令。

範例[編輯]

/execute as @e[type=zombie] at @s run setblock ~ ~-1 ~ diamond_block - 在殭屍腳下放置鑽石磚。
/execute as @r at @s run summon lightning_bolt - 雷劈一名隨機玩家。
/execute as @a at @s if block ~ ~-1 ~ concrete 14 run kill @s - 當玩家踩到紅色混凝土時,殺死該玩家。

版本25語法中,execute分為了許多子命令,有如下3類,11條子命令,共19個多載:

修飾子命令:修改命令變數和命令的執行方式,從而以特定的執行者、執行位置、執行維度、執行座標執行命令。修飾子命令有8條: alignanchoredasatfacing (entity)inpositioned (as)rotated (as)
條件子命令:當特定條件成立或不成立時,執行命令或透過檢測。條件子命令有2條:ifunless
執行子命令:執行對應的命令。執行子命令為run
Java版中還具有儲存子命令(store),但基岩版中尚未加入。

子命令之間可以互相套用(除了run)。命令必須以條件子命令或執行子命令收尾,否則會報錯。對於多個子命令,遊戲將從前往後處理這些子命令,例如下面兩個命令的意義就是不同的:

/execute positioned ~ ~ ~ as @e run tp @s ~ ~ ~ - 將所有實體傳送到執行者的位置
/execute as @e positioned ~ ~ ~ run tp @s ~ ~ ~ - 將所有實體傳送到其原位

[chainedCommand: ExecuteChainedOption_0]表示下一個子命令的開始。對於條件子命令,該參數是可選的;對修飾子命令,這參數是必選的。

多載[編輯]

修飾子命令部分
  1. execute align <axes: string> <chainedCommand: ExecuteChainedOption_0>
  2. execute anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  3. execute as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  4. execute at <origin: target> <chainedCommand: ExecuteChainedOption_0>
  5. execute facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  6. execute facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>
  7. execute in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>
  8. execute positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
  9. execute positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>
  10. execute rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
  11. execute rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>
條件子命令部分
  1. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
  2. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> <data: int> [chainedCommand: ExecuteChainedOption_0]
  3. execute <subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]
  4. execute <subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]
  5. execute <subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]
  6. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
  7. execute <subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]
執行子命令部分
  1. execute run <command: command>

參數與範例[編輯]

align變更執行座標為方塊座標(且向下取整)。

語法[編輯]

align <axes: string> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

axes 軟列舉參數
string型別,必選,為xyz的任意不重複組合,不考慮順序。例如xxzyxxzy等。
chainCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute align xyz run summon armor_stand ~ ~ ~ - 在執行者的方塊位置召喚一個盔甲座(可用於召喚在方塊中心而不偏移)
execute positioned 19.58 88.78 13.26 align zy run tp @s ~ ~ ~ - 將執行者傳送至(19.58,88.00,13.00)。

anchored變更執行位置為執行者的眼部或腳部,預設為腳部。

語法[編輯]

anchored <eyes|feet> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

eyes|feet 列舉參數
必選,變更執行位置為執行者的眼部或腳部。
chainCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute as @e[type=armor_stand] anchored eyes run tp @s ~ ~ ~ - 將盔甲座傳送至其眼部的位置。

as變更命令的執行者。

語法[編輯]

as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

origin 基本參數
target型別,必選,指定執行者。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute as @a if block ~ ~ ~ air - 檢測是否有玩家所處位置為空氣
execute as @e run setblock ~ ~-1 ~ redstone_block - 在所有實體腳下放置鑽石磚。

at變更命令的執行位置和執行維度為規定實體的位置和維度。

語法[編輯]

at <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

origin 基本參數
target型別,必選,指定命令的執行位置和執行維度為規定實體的位置和維度。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute as @a at @s run tp @s ~ ~5 ~ - 將所有玩家傳送至其上方5格的位置
execute at @s run playsound random.orb @a ~ ~ ~ - 以執行者為音源播放經驗球音效。

facing變更命令的執行朝向為規定座標或實體。

語法[編輯]

facing <position: x y z> <chainedCommand: ExecuteChainedOption_0>
facing entity <origin: target> <eyes|feet> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

position 基本參數
x y z型別,必選,指定命令的執行朝向為特定座標。必須為有效的座標。
origin 基本參數
target型別,必選,指定命令的執行朝向為特定實體。
eyes|feet 列舉參數
必選,變更執行朝向為指定實體的眼部或腳部。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute as @a[tag=a] facing 0 64 0 run tp @s ^^^1 - 令帶標籤a的玩家朝着(0,64,0)移動1格。
execute as @a[tag=a] facing entity @e[type=zombie,c=1] feet run tp @s ^^^1 - 令帶標籤a的玩家朝着附近的殭屍移動1格。

in變更命令的執行維度。

語法[編輯]

in <dimension: Dimension> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

dimension 列舉參數
Dimension型別,必選,指定命令的執行維度。可以為netheroverworldthe_end中的一個。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute in the_end run tp @s 0 128 0 - 傳送執行者到終界的(0,128,0)。
execute in nether run setblock 0 0 0 air - 在地獄的(0,0,0)放置空氣(對應區域必須存在常載入區域)。

positioned變更命令的執行位置為規定實體的位置,和at的區別在於其不會修改執行維度。

語法[編輯]

positioned <position: x y z> <chainedCommand: ExecuteChainedOption_0>
positioned as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

position 基本參數
x y z型別,必選,指定命令的執行位置為特定座標。
origin 基本參數
target型別,必選,指定命令的執行位置為規定實體的位置。必須為有效的實體ID或假名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute positioned ~ ~ ~ run tp @a ~ ~10 ~ - 將所有玩家傳送到執行者上方10格(可在命令方塊執行,因其修改執行座標不需要用到@s)。
execute as @a positioned ~ ~ ~ run tp @s ~ ~10 ~ - 將所有玩家傳送到其上方10格。
execute as @a positioned as @s run tp @s ~ ~5 ~ - 將所有玩家傳送至其上方5格的位置
execute positioned as @s run playsound random.orb @a ~ ~ ~ - 以執行者為音源播放經驗球音效。(命令方塊不可執行)

rotated變更命令的執行朝向為規定位置,或規定實體的朝向。需要注意,rotated僅改變執行朝向,而不改變執行者的朝向以及執行位置。

語法[編輯]

rotated <yaw: value> <pitch: value> <chainedCommand: ExecuteChainedOption_0>
rotated as <origin: target> <chainedCommand: ExecuteChainedOption_0>

參數[編輯]

yaw 基本參數
value型別,必選,指定水平旋轉角度。正北方為-180.0,正東為-90.0,正南為0.0,正西為90.0,正北以西為179.9,之後回到-180.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
pitch 基本參數
value型別,必選,指定垂直旋轉角度。豎直上方為-90.0,至豎直下方90.0。可使用波浪號指定基於目前旋轉角度的相對偏移。
origin 基本參數
target型別,必選,指定執行朝向為規定實體的朝向。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,必選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute rotated 0 0 run tp @a ^ ^ ^1 - 向南方的水平方向將所有玩家傳送1格。
execute as @a rotated @e[type=zombie,c=1] run tp @s ^ ^ ^1 - 以玩家附近的殭屍的朝向方向將該玩家傳送1格。

ifunless是條件子命令,可用於對特定條件進行檢測或者作為命令執行的限制條件。if意為如果...就...,如果檢測成功那麼就透過檢測;unless意為除非...否則...,如果檢測成功那麼就導致檢測不透過(類似非門)。


條件子命令的功能與/testfor/testforblock/testforblocks/scoreboard players test ...基本一致(事實上更強)。


現在的條件子命令支援4項檢測:

(if|unless) block - 檢測單個方塊(即/testforblock
(if|unless) blocks - 檢測一個區域(即/testforblocks
(if|unless) entity - 檢測實體(即/testfor
(if|unless) score - 檢測目標分值(即/scoreboard players test,事實上if score更強些)


語法如下所示。

(if|unless) block[編輯]

(if|unless) block檢測規定位置是否為規定方塊。

語法[編輯]

<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <blockStates: block states> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> <data: int> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> block <position: x y z> <block: Block> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為ifunless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
position 基本參數
x y z型別,必選,指定待檢測位置。若填寫相對座標,則命令的執行位置以執行者的位置為參考。必須為有效的座標
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
blockStatesdata 基本參數
block states型別(前者)或int型別(後者),必選。指定待檢測方塊的方塊狀態或數據值。設定為-1可以匹配該方塊的任意數據值。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if block 0 -64 0 bedrock - 檢測(0,-64,0)是否為基岩(等效於/testforblock 0 -64 0 bedrock)。
execute if block 560 51 8 wool ["color":"red"] - 檢測(560,51,8)是否為紅色羊毛(等效於/testforblock 560 51 8 wool 14)。
execute unless block 114 -27 81 redstone_block run give @a diamond - 當(114,-27,81)為紅石磚時,給予所有玩家一顆鑽石。

(if|unless) blocks[編輯]

(if|unless) blocks檢測規定區域是否和另一區域一致。

語法[編輯]

<subcommand: Option_If_Unless> blocks <begin: x y z> <end: x y z> <destination: x y z> <scan mode: BlocksScanMode> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
beginend 基本參數
x y z型別,必選,指代源區域的兩個對角方塊位置。必須為有效的座標
destination 基本參數
Block型別,必選,對照區域的西北下角位置(即xyz座標均為最小的位置)。
scan mode 列舉參數
BlocksScanMode型別,必選(相對應的,/testforblocks的對應參數為可選)。指定掃描模式,必須為all(檢測所有方塊是否全部匹配,包括空氣)或masked(檢測目標區域的方塊和源區域的非空氣方塊是否匹配)
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if blocks 14 57 -69 14 57 -69 36 90 56 all - 檢測(14,57,-69)和(36,90,56)兩個方塊的位置是否完全匹配(等效於/testforblocks 14 57 -69 14 57 -69 36 90 56)。
execute unless blocks 89 55 14 98 36 76 57 45 -13 all run setblock 11 14 13 wool 14 - 當(89,55,14)和(98,36,76)所圍區域不完全和(57,45,-13)匹配時,在(11,14,13)放置紅色羊毛。

(if|unless) entity[編輯]

(if|unless) entity檢測是否存在規定實體。

語法[編輯]

<subcommand: Option_If_Unless> entity <target: target> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID。
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。

範例[編輯]

execute if entity @e[type=zombie] - 檢測是否有殭屍(等效於/testfor @e[type=zombie])。
execute unless entity @a[scores={level=27}] - 當不存在計分板level上為27分的玩家時,執行成功。
execute if entity @e[type=snowball] run setblock 15 15 20 redstone_block - 當世界中存在積雪球時,在(15,15,20)放置紅石磚。

(if|unless) score[編輯]

(if|unless) score檢測目標分數是否滿足特定條件。其中score ...進行兩者分數的比較;而score ... matches ...則檢測單個目標的分數是否符合特定條件。

語法[編輯]

<subcommand: Option_If_Unless> score <target: target> <objective: string> <operation: compare operator> <source: target> <objective: string> [chainedCommand: ExecuteChainedOption_0]
<subcommand: Option_If_Unless> score <target: target> <objective: string> matches <range: integer range> [chainedCommand: ExecuteChainedOption_0]

參數[編輯]

對於if score ...
subcommand 列舉參數
Option_If_Unless型別,必選,指定命令的執行條件。可以選填為if或unless,當填寫為if時則後面的檢測條件檢測成功時透過;填寫為unless時則檢測成功時不透過。
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective(前者) 基本參數
string型別,必選,指定追蹤待檢測實體分數的記分項。
operation 列舉參數
compare operator型別,必選,待檢測實體和源實體進行分數比較時,該參數將指定比較指標。只能為以下5種:
= - 當待檢測實體和源實體分值一致時,檢測透過
> - 當待檢測實體大於源實體分值時,檢測透過
>= - 當待檢測實體大於等於源實體分值時,檢測透過
< - 當待檢測實體小於源實體分值時,檢測透過
<= - 當待檢測實體小於等於源實體分值時,檢測透過
source 基本參數
target型別,必選,指定源實體。必須為有效的實體ID或假名。
objective(後者) 基本參數
string型別,必選,指定追蹤源實體分數的記分項。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意11種子命令型別。


對於if score ... matches ...:
target 基本參數
target型別,必選,指定待檢測實體。必須為有效的實體ID或假名。
objective 基本參數
string型別,必選,指定追蹤待檢測實體分數的記分項。
range 基本參數
integer range型別,必選,檢查待檢測實體的分數是否滿足特定範圍。以数字..数字的形式指定範圍,支援"!"反選。
chainedCommand 列舉參數
ExecuteChainedOption_0型別,可選,指定執行什么子命令。可以為上述的任意7種子命令型別。

範例[編輯]

execute if score @s board >= @r board - 當自己在board上的分數大於等於另一位隨機玩家在board上的分數時,檢測透過。
execute as @e[type=zombie,c=1] unless score @s a = @e[type=villager,c=1] a run kill @s - 當附近的一隻殭屍在a上的分數不等於附近的一隻村民在a上的分數時,殺死該殭屍。
execute if score @s board matches 1..5 - 當自己在board上的分數在[1,5]分上時,檢測透過。
execute if score @e[type=zombie,c=1] matches !6..10 - 當附近的一隻殭屍在a上的分數不在[6,10]分上時,檢測透過。
execute unless score @a[tag=gaming] a matches ..2 run setblock 12 34 56 air - 當帶有gaming標籤的玩家的分數不小於等於2分時(即大於2分時),在(12,34,56)放置空氣。(事實上這個檢測部分也和execute if score @a[tag=gaming] matches 3..以及execute if score @a[tag=gaming] matches !..2等效)

run執行命令。

語法[編輯]

run <command: command>

參數[編輯]

command 基本參數
command型別,必選,指定要執行的命令。

範例[編輯]

/execute as @e[type=zombie] at @s run setblock ~ ~-1 ~ diamond_block - 在殭屍腳下放置鑽石磚。
/execute as @r at @s run summon lightning_bolt - 雷劈一名隨機玩家。
/execute as @a at @s if block ~ ~-1 ~ concrete 14 run kill @s - 當玩家踩到紅色混凝土時,殺死該玩家。

初始版本語法中,該命令只有兩個多載。

多載[編輯]

  1. execute <origin: target> <position: x y z> <command: command>
  2. execute <origin: target> <position: x y z> detect <detectPos: x y z> <block: Block> <data: int> <command: command>

參數[編輯]

多載1變更命令的執行者和執行位置,然後直接執行命令。

origin 基本參數
target型別,必選,指定命令要以何實體為執行者。必須為玩家名或目標選擇器
position 基本參數
x y z型別,必選,指定命令要以何位置為執行位置。若填寫相對座標,則命令的執行位置以origin: target的位置為參考。必須為座標
command 基本參數
command型別,必選,指定執行什麼命令。特殊的,這命令可以為/execute。只能執行權限等級小於等於1的命令。

多載2變更命令的執行者和執行位置,然後檢測特定位置是否為特定方塊(類似於/testforblock),檢測透過後執行命令。

origin 基本參數
target型別,必選,指定命令要以何實體為執行者。必須為玩家名或目標選擇器
position 基本參數
x y z型別,必選,指定命令要以何位置為執行位置。若填寫相對座標,則命令的執行位置以origin: target的位置為參考。必須為座標
detectPos 基本參數
x y z型別,必選,指定待檢測位置。若填寫相對座標,則命令的執行位置以origin: target的位置為參考。必須為座標
block 列舉參數
Block型別,必選,指定待檢測位置是否為特定方塊。必須為有效的方塊ID或方塊名。
data 基本參數
int型別,必選,指定待檢測位置的方塊數據值。設定為-1可以匹配該方塊的任意數據值。
command 基本參數
command型別,必選,指定執行什麼命令。特殊的,這命令可以為/execute。只能執行權限等級小於等於1的命令。

效果[編輯]

命令觸發條件執行結果
任意參數未正確指定失敗
origin無法解析為一個實體或多個實體(若為玩家名則必須線上)
(對於多載2)檢測結果不一致
命令執行失敗
執行成功命令以特定的執行者和執行位置執行

輸出[編輯]

命令執行結果成功次數增量
任意失敗0
成功< >

範例[編輯]

/execute @e[type=zombie] ~ ~ ~ setblock ~ ~-1 ~ diamond_block - 在殭屍腳下放置鑽石磚。
/execute @r ~ ~ ~ summon lightning_bolt ~ ~ ~ - 雷劈一名隨機玩家。
/execute @a ~ ~ ~ detect ~~-1~ concrete 14 kill @s - 當玩家踩到紅色混凝土時,殺死該玩家。

響應[編輯]

WebSocket[編輯]

  • :根物件
    •  header:報文訊息的頭。
      •  messagePurpose:該條報文訊息的傳送目的,對於命令響應恆為commandResponse
      •  requestId:造成該響應的請求報文的UUID。
      •  version:該報文的版本。
    •  body:報文訊息的內容。
      •  statusCode:該響應的狀態碼。
      •  statusMessage:該響應的狀態訊息,對於命令響應為該命令的執行意見回饋文字。

Manual:/execute/response

範例[編輯]

腳本API[編輯]

  • :根物件
    •  statusCode:該響應的狀態碼。
    •  statusMessage:該響應的狀態訊息,對於命令響應為該命令的執行意見回饋文字。

Manual:/execute/response

範例[編輯]

歷史[編輯]

攜帶版(Alpha)
0.16.0build 1加入了/execute命令。
此命令的功能相當於其在Java版1.10的功能,但在/execute中實體目標是可選的。
基岩版
1.19.101.19.10.20/execute加入了7條子命令:asatpositioned (as)ifunlessrun
1.19.10.20新版子命令屬於實驗性玩法,並需要命令版本21。
1.19.10.20舊版語法只有未開啟實驗性玩法或命令版本小於或等於20時啟用。
1.19.401.19.40.20加入了rotated (as)子命令,屬於實驗性玩法。
1.19.40.21加入了facing (entity)align子命令,屬於實驗性玩法。
1.19.40.23加入了inanchored子命令,屬於實驗性玩法。
1.19.501.19.50.23新版子命令走出實驗性玩法,命令版本提升至25。
1.19.50.23棄用舊版語法,只有在命令版本小於或等於24時啟用。
基岩版(即將到來)
1.19.701.19.70.21當命令版本大於或等於28時,不再具有(if|unless) block <data: int>多載。

畫廊[編輯]

Template:Commands