Пакет Python VPython - 3D Программирование для Обычного Смертного ( видео учебное руководство ).
from visual import *
floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01
while 1:
rate (100)
ball.pos = ball.pos + ball.velocity*dt
if ball.y < ball.radius:
ball.velocity.y = -ball.velocity.y
else:
ball.velocity.y = ball.velocity.y - 9.8*dt
Многие командлеты PowerShell имеют параметры Path, которые поддерживают подстановочные знаки. Как вы заметили, в PowerShell не только *
подстановочный знак, но и [
и ]
также считаются подстановочными знаками. Подробнее об этом можно прочитать в разделе справки about_Wildcards.
Что касается вашей проблемы, если вам не нужны подстановочные знаки, я бы рекомендовал использовать параметр -LiteralPath. Этот параметр не поддерживает подстановочные знаки и принимает [
и ]
в качестве буквальных символов пути, например:
Get-ChildItem | ForEach {Test-Path -LiteralPath `
"$([io.path]::ChangeExtension($_.FullName,'avi'))"}
FYI, причина, по которой вывод Get-ChildItem непосредственно в Test-Path работает потому что параметр LiteralPath имеет псевдоним «PSPath», который сопоставляется со свойством PSPath в выходных данных объекта FileInfo с помощью Get-ChildItem. Это свойство привязывается к параметру LiteralPath (er PSPath) «по имени свойства».