Python является одним из нескольких (?) языков, где 'и "имеют идентичную функциональность. Выбор для меня обычно зависит от того, что внутри. Если я соберусь заключить в кавычки строку, которая имеет одинарные кавычки в нем, то я буду использовать двойные кавычки и стих визы, для сокращения необходимости к символам ESC в строке.
Примеры:
"this doesn't require escaping the single quote"
'she said "quoting is easy in python"'
Это документируется на странице "String Literals" документации Python:
Я бы сначала отфильтровал по 5 *, чтобы вы обрабатывали только те имена, которые начните с 5. Кроме того, в этом случае, поскольку tf.exe не является командлетом PowerShell, вы не хотите использовать блок сценария для определения нового имени. Просто используйте выражение группировки, например:
dir -filter 5* | foreach { tf rename $_ ($_.Name -replace '^5', '2.3.2')}
Кстати, когда вы пытаетесь отладить передачу параметров в собственный EXE-файл, подобным образом, очень полезно использовать утилиту echoargs.exe из PowerShell Community Extensions . Вот что он рассказал мне о вашем первоначальном подходе:
6# dir -filter 5* | foreach { echoargs rename $_ { $_.Name -replace '^5', '2.3.2' } }
Arg 0 is <rename>
Arg 1 is <5foo.txt>
Arg 2 is <-encodedCommand>
Arg 3 is <IAAkAF8ALgBOAGEAbQBlACAALQByAGUAcABsAGEAYwBlACAAJwBeADUAJwAsACAAJwAyAC4AMwAuADIAJwAgAA==>
Arg 4 is <-inputFormat>
Arg 5 is <xml>
Arg 6 is <-outputFormat>
Arg 7 is <text>
Попробуйте следующее:
dir . | foreach { $newname = $_.Name -replace "^5", "2.3.2"; tf rename $_ $newname }
Примечания: