J'essaie de renommer récursivement un tas de TFS dossiers à l'aide de Résultat réel: p> mise à jour: p> J'ai un peu plus proche en procédant comme suit: P> TF Rename code>, PowerShell et une expression régulière, mais j'ai des problèmes avec PowerShell comme je n'ont pas passé beaucoup de temps avec ça. C'est ce que j'ai mis ensemble jusqu'à présent pour remplacer un (code> 5 code> avec
2.3.2 code> mais cela ne fonctionne pas:
dir | foreach { $newname = $_.Name -replace "^5", "2.3.2"; tf rename $_ $newname }
4 Réponses :
Essayez ceci:
dir . | foreach { $newname = $_.Name -replace "^5", "2.3.2"; tf rename $_ $newname }
Je filtrerais d'abord par 5 * afin que vous traitiez uniquement les noms qui commencent par 5. Également, dans ce cas, car Tf.exe n'est pas une cmdlet PowerShell, vous ne voulez pas utiliser de script pour déterminer un nouveau nom. . Il suffit d'utiliser une expression de regroupement comme si:
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>
Notes: P>
Exécution des commandes ci-dessus nécessite que le TF.exe ait été aliasé comme «TF» .. ou il a fait sur ma machine au moins.
exécutez cette commande: P>
notepad $PROFILE
Je ne connais pas la réponse, mais une bonne question. :)