J'essaie de traduire un fichier .bat à PowerShell et de faire du mal à comprendre ce que font quelques extraits de code: Qu'est-ce que la ligne 2 ci-dessus fait? Spécialement, je ne comprends pas ce que: \ = / fait depuis que j'ai vu la variable d'autre où dans le code référencé comme! My_variable!. P> L'autre point de confusion est le code ci-dessous. P> set TN0=%~n0
set TDP0=%~dp0
set STAR=%*
3 Réponses :
Points d'exclamation (!) Les fichiers de lots i N DOS Référencez la valeur intermédiaire, utile si vous êtes dans une boucle. Si vous deviez utiliser un% à la place (dans une boucle), il retournerait la même valeur.
Les lignes 3 et 4 sont réglées "Certaines_variable" à la valeur intermédiaire de "certains_arguments: \ \" et certains_arguments : "= \", respectivement. Encore une fois, je suppose que ces lignes proviennent d'une boucle. P>
comme pour les assignations variables, les affectations variables PowerShell fonctionnent comme ceci: P>
$myVariable = "my string"
Merci, cela a parcouru un long chemin à m'aider à traduire ce fichier de commandes à PowerShell
Le http://www.robvanderwoude.com/ntset.php#strsubst < / p>
Lorsque vous utilisez Vous pouvez en savoir plus sur l'expansion retardée ici p>
http://www.robvanderwoude.com/ntset.php#delayedexpansion < / p> ! var: recherche = remplacer! code> est la substitution de chaîne pour une variable expansée de retard. p>
! code> au lieu de
% code> pour une variable, vous voulez que DOS fasse le remplacement variable au moment de l'exécution (ce qui est probablement ce que vous pensez qu'il fait avec < Code>% code>, mais ça ne le fait pas). Avec
% code>, la variable est substituée au point que la commande est analysée (avant son exécution) - donc si la variable change dans le cadre de la commande, elle ne sera pas vue. Je pense que certains commutatez-vous à utiliser
! Code> tout le temps, car il donne un comportement "normal". P>
Les deux premiers La finale, Les informations supplémentaires peuvent être trouvées dans les réponses ici ou Ici . P> Set variablename = code> Les commandes utilisent des modificateurs pour développer le nom du fichier de commandes, représenté comme
% 0 code>. P>.
% ~ N0 code> l'étend à un nom de fichier et
% ~ DP0 CODE> Délimètre pour inclure une lettre de lecteur et une cheminée. p>
% * code>, représente tous les arguments passés au fichier de commandes. P>