Синтаксическая проблема в PowerShell в среде CMD - PullRequest
0 голосов
/ 22 ноября 2018

Под Windows 10 Enterprise LTSC у меня есть простой CMD ff.bat, который содержит:

powershell -Command (Measure-Command {ffmpeg.exe -hide_banner -i %* E:\%~n1.mkv}).ToString

В CMD> ff test.mp4 и ff "test.mp4" работает, но НЕ

ff "E:\Serie.(2009).8x04.episode.FR.LD.WEBRip.x264-LiBERTY.[server.org.ru].mkv"

Приведенная ошибка PowerShell:

Длина строки: 1: 60 + (Measure-Command {ffmpeg.exe -hide_banner -i Serie. (2009) .8x04.episode.FR.LD.WEBRip.x264-LiBERTY. [server.org.ru] .mkv ... +
~ Nom de propriété manquant apés l'opérateur de référence. (Отсутствует свойство после оператора ссылки) Au caractère Ligne: 1: 144 + ... .FR.LD.WEBRip.x264-LiBERTY. [Server.org.ru] .mp4 E: \ Serie ... + ~ Nom de propriété manquant après l'opérateur de référence. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: MissingPropertyName

Я полагаю, что проблема связана с .-[]():\ и в имени файла указаны скобки и скобки. Не могли бы вы дать мне правильный синтаксис для этой работы в CMDПожалуйста, в качестве бонуса, вы можете дать мне синтаксис, чтобы яработать в PS, если это возможно.Обратите внимание, что я новичок в PowerShell и нуждаюсь в примерах, а не в предложениях.Заранее спасибо, Марк.

1 Ответ

0 голосов
/ 22 ноября 2018

Ваше предположение здесь ...

Я полагаю, что проблема связана с .-: \ и скобками и скобками в имени файла

...is правильно.

В каждом случае использования языка есть специальные символы.Они могут использоваться только так, как определено в спецификации языка.Если какая-либо строка, которую вы используете, имеет эти типы символов, вам необходимо либо удалить их, либо правильно завершить их.

<#
LONG DESCRIPTION
    Windows PowerShell supports a set of special character sequences that 
    are used to represent characters that are not part of the standard 
    character set. 

    The special characters in Windows PowerShell begin with the backtick 
    character, also known as the grave accent (ASCII 96). 

    The following special characters are recognized by Windows PowerShell: 

        `0    Null 
        `a    Alert 
        `b    Backspace 
        `f    Form feed 
        `n    New line 
        `r    Carriage return 
        `t    Horizontal tab 
        `v    Vertical tab 
        --%   Stop parsing
#>
Get-help -Name about_Special_Characters 

Даже скобки, фигурные скобки, скобки также имеют особое значение и не могут использоваться в именах файлов.

PowerShell - специальные символы и токены

Итак, согласно тому, что вы показываете в этом неверном имени файла, вам нужно переименовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...