Jak uzyskać dostęp do ścieżek plików w PowerShell zawierających znaki specjalne?

Dzwonię do aplikacjihellhell z poziomu aplikacji Java (poprzez wiersz poleceń systemu Windows), aby odczytać różne atrybuty plików.

na przykład

powershell (get-item 'C:\Users\erlpm\Desktop\Temp\s p a c e s.txt').creationTime

Ścieżkę do pliku umieszczam w pojedynczych cudzysłowach, ponieważ może zawierać spacje. Działało dobrze, dopóki nie natrafiłem na ścieżkę do pliku zawierającą nawiasy kwadratowe, które wydają się być interpretowane jako znak wieloznaczny. Udało mi się go rozwiązać, dodając-literalPath parametr:

powershell (get-item -literalpath 'C:\Users\erlpm\Desktop\Temp\brackets[].txt').creationTime

Do tej pory tak dobrze ... Ale ścieżki do plików mogą również zawierać pojedyncze cudzysłowy, znaki dolara, znaki ampersand, ... i wszystkie te znaki wydają się mieć określoną funkcję w PowerShell, dla której-literalPath parametr nie działa. Próbowałem zamknąć ścieżkę podwójnymi cudzysłowami lub uciec znakiem `, ale to nie rozwiązało mojego problemu :-(

Wszelkie sugestie dotyczące przekazywania ścieżki do pliku PowerShell, która może zawierać spacje, pojedyncze cudzysłowy, nawiasy kwadratowe, znaki handlowe, znaki dolara itp.?

Aktualizacja: Ktoś tutaj już pokazał mi, jak to działa z poziomu Powershell, ale jakoś odpowiedź została usunięta?
W każdym razie stworzyłem plik o nazwie$ & ' [].txt. To działaw ciągu Powershell (potrzebny do ucieczki z &):

    PS C:\Users\erlpm> Get-Item -LiteralPath "C:\Users\erlpm\Desktop\Temp\`$ & ' [].txt"


    Directory: C:\Users\erlpm\Desktop\Temp


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2012-08-23     14:22          0 $ & ' [].txt

Ale kiedy wykonam to samo polecenie Powershell w wierszu polecenia systemu Windows, ...

C:\Users\erlpm>powershell Get-Item -LiteralPath "C:\Users\erlpm\Desktop\Temp\`$ & ' [].txt"

... Dostaję ten błąd:

    Ampersand not allowed. The & operator is reserved for future use; use "&" to pass ampersand as a string.
At line:1 char:55
+ Get-Item -LiteralPath C:\Users\erlpm\Desktop\Temp\`$ & <<<<  ' [].txt
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : AmpersandNotAllowed

Używając-command parametr i umieszczenie polecenia Powerhell{} podaje dokładnie ten sam komunikat o błędzie ...

C:\Users\erlpm>powershell -command {Get-Item -LiteralPath "C:\Users\erlpm\Desktop\Temp\`$ & ' [].txt"}

questionAnswers(3)

yourAnswerToTheQuestion