Dans un fichier de commandes, la combinaison de deux chaînes pour créer un chemin d'accès de la chaîne
J'ai besoin de prendre deux chaînes et de les combiner dans un seul chemin de chaîne à l'intérieur d'un lot de fichier similaires à la Voie.Méthode de combinaison .NET. Par exemple, si les chaînes sont "C:\trunk" et "ProjectName\Project.txt" ou "C:\trunk\" \ " et "ProjectName\Project.txt", le chemin d'accès sera "C:\trunk\ProjectName\Project.txt".
J'ai essayé à l'aide de PowerShell join-path de commande qui fonctionne, mais j'ai besoin d'un moyen de passer cette valeur de retour dans le fichier de commandes. J'ai essayé d'utiliser les variables d'environnement, mais je n'ai pas réussi. Une option pour moi, c'est de déplacer tous ce code dans un script PowerShell et d'éviter le fichier de lot au total. Cependant, si je devais le faire dans le fichier de lot, comment pourrais-je le faire?
OriginalL'auteur Arsalan Ahmed | 2010-06-24
Vous devez vous connecter pour publier un commentaire.
Variables d'environnement que vous définissez dans un sous-processus ne peut pas être passé par le processus appelant. Un environnement des processus est une copie de l'un de ses parents, mais pas vice-versa. Toutefois, vous pouvez simplement copier le résultat dans PowerShell et de lire que sortie de fichier de commandes:
Encore, depuis PowerShell a besoin d'environ une seconde pour commencer, ceci peut ne pas être optimale. Vous pouvez certainement le faire dans un fichier de commandes avec le suivant peu de sous-programme:
Il suffit de regarde le dernier caractère de la première chaîne et si ce n'est pas une barre oblique inverse il va ajouter une entre les deux est assez simple, en fait.
Exemple de sortie:
Le code et exemple de fichier de commandes peut être trouvé dans mon SVN mais sont reproduites ici, car ils sont assez bref de toute façon:
Il suffit de l'essayer, c'est pourquoi le code est là. Et non, vous ne le font pas. Je suis en utilisant
%~1
et%~2
dans cette sous-routine qui supprime les guillemets autour de l'argument. Bien sûr, vous avez besoin de citer vous-même correctement, mais c'est toujours le cas (par exemple lors de l'itération sur les fichiers avecfor
).Comment puis-je télécharger votre lot d'échantillons?
Il semble y avoir un problème de configuration. Je vais pousser mon hébergeur plus tard; pour l'instant j'ai copié le code dans la réponse. Il ne contient pas beaucoup plus.
OriginalL'auteur Joey