Dlaczego Set-Location mówi „Nie można znaleźć parametru pozycyjnego, który akceptuje argument„… ””


2

Próbuję zmienić katalog roboczy za pomocą set-location. Oto co zrobiłem do tej pory:

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

Oto błąd:

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

Nadal jestem noobem. Jak mam podejść do tego problemu?


Cześć DATAfiend. Zredagowałem twoje pytanie, aby trochę je oczyścić i nadać mu lepszy tytuł. Mam jednak wrażenie, że masz tam spacje (i przynajmniej jedną nową linię), które nie należą. Czy możesz sprawdzić, aby upewnić się, że to, co próbowałeś, pasuje do tego, co jest w pytaniu, i edytować dalej, jeśli nie?
CVn

@root Nie publikuj odpowiedzi jako komentarzy.
CVn

Odpowiedzi:


0

Załóżmy, że masz aplikację o nazwie, TestParamktóra pobiera dowolną liczbę parametrów i powtarza je w nowej linii:

>TestParam thisisatest
thisisatest

Kiedy są spacje, uważa je za separator między parametrami:

>TestParam this is a test
this
is
a
test

Jest to to samo, co pisanie Test "This" "is" "a" "test"i zasadniczo przekazujesz cztery różne ciągi. Jeśli chcesz przekazać pojedynczy parametr zawierający spacje:

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

Kiedy patrzysz na błąd, mówi, że nie może znaleźć parametru dla „DYSTRYBUCJA \ inżynier \ drft-tm \ 60kV”, który jest drugim parametrem przekazywanym do niego przez polecenie, ponieważ masz spacje. Jeśli twoja ścieżka zawiera spacje, to dobrze, ale musisz powiedzieć PowerShellowi, że jest to pojedynczy parametr i tylko jeden ciąg:

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

„Jesteś człowiekiem!” Wielkie dzięki! Nigdy nie wiedziałem o wymogu oferty.
DATAfiend

3

Otocz ścieżkę folderu podwójnymi cudzysłowami, aby brzmiała:

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

Otaczanie cudzysłowami = odpowiedź. Usuwanie spacji = zły pomysł. :)
ᴇcʜιᴇ007

Ok, więc NIE ma spacji podczas wpisywania ścieżki? Kto wiedział ?, ok, pozwól mi sprawdzić.
DATAfiend

wciąż walczy ...
DATAfiend
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.