Поведение тестового тракта в Powershell

Пакет 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

прыгающий мяч VPython http://vpython.org/bounce.gif

5
задан Joey 25 November 2009 в 18:35
поделиться

2 ответа

Многие командлеты 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) «по имени свойства».

8
ответ дан 14 December 2019 в 01:10
поделиться
 dir | % {test-path "$($_.Name)-android.avi"}
1
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: