Question Pourquoi Set-Location dit-il "Un paramètre positionnel ne peut pas être trouvé qui accepte l'argument '...'"


Je tente de changer mon répertoire de travail en utilisant set-location. C'est ce que j'ai fait jusqu'ici:

Set-Location H:\09- DISTRIBUTION\engineer\drft-tmp\310-DOUGLAS\60kV BLDG Design DWGs

Voici l'erreur:

Set-Location : A positional parameter cannot be found that accepts argument 'DISTRIBUTION\engineer\drft-tm
\60kV'.
At line:1 char:13
+ Set-Location <<<<  \09- DISTRIBUTION\engineer\drft-tmp\310-DOUGLAS\60kV BLDG Design DWGs
    + CategoryInfo          : InvalidArgument: (:) [Set-Location], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

Je suis toujours un noob. Comment devrais-je aborder ce problème?


2
2018-03-17 14:41


origine


Salut DATAfiend. J'ai édité votre question pour la nettoyer un peu et lui donner un meilleur titre. Cependant, j'ai le sentiment que vous avez des espaces (et au moins une nouvelle ligne) qui n’appartiennent pas. Pouvez-vous vérifier pour vous assurer que ce que vous avez essayé correspond à ce qui est dans la question maintenant, et modifier plus loin sinon - Michael Kjörling
@root S'il vous plaît ne pas poster des réponses en tant que commentaires. - Michael Kjörling


Réponses:


Disons que vous avez une application appelée TestParam cela prend un nombre quelconque de paramètres et les renvoie sur les nouvelles lignes:

>TestParam thisisatest
thisisatest

Lorsqu'il y a des espaces, il les considère comme un séparateur entre les paramètres:

>TestParam this is a test
this
is
a
test

C'est la même chose que de taper Test "This" "is" "a" "test" et vous passez essentiellement quatre chaînes différentes. Si vous voulez passer un seul paramètre qui comporte des espaces:

>TestParam "This is a test"
This is a test

Lorsque vous examinez l'erreur, elle indique qu'elle ne peut pas trouver de paramètre pour "DISTRIBUTION \ engineer \ drft-tm \ 60kV", qui est le deuxième paramètre que votre commande lui transmet, car vous avez des espaces. Si votre chemin comporte des espaces, c'est bien, mais vous devez indiquer à PowerShell qu'il s'agit d'un seul paramètre et qu'il ne contient qu'une seule chaîne:

Set-Location "H:\09- DISTRIBUTION\engineer\drft-tmp\310-DOUGLAS\60kV BLDG Design DWGs"

0
2018-03-17 15:47



"Tu es un homme!" Merci beaucoup! Je n'ai jamais connu l'exigence de devis. - DATAfiend


Entourez le chemin du dossier avec des guillemets doubles pour lire:

Set-Location "H:\09- DISTRIBUTION\engineer\drft-tmp\310-DOUGLAS\60kV BLDG Design DWGs"

2
2018-03-17 14:50



Surrounding in quotes = répondre. Supprimer des espaces = mauvaise idée. :) - Ƭᴇcʜιᴇ007
Ok, donc pas d'espace lorsque vous tapez sur le chemin? Qui savait? OK, laissez-moi vérifier. - DATAfiend
toujours en difficulté ... - DATAfiend