Re: Jak przekazać -F\" jako argument skryptu cmd?

Autor: XYZ <junk_at_mail.bin>
Data: Wed, 25 Apr 2012 02:11:23 +0200
Message-ID: <jn7ffg$1kg$1@inews.gazeta.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed

On 25.04.2012 01:10, Grzegorz Niemirowski wrote:
> XYZ <junk_at_mail.bin> napisał(a):
>> Hej,
>> Bezskutecznie próbuję przekazać ciąg -F\" jako argument skryptu cmd.
>> Próbowałem escape'ować na różne sposoby:
>> -F^\^"
>> -F^\"
>> -F\^"
>> ale cudzysłów wciąż powoduje włączenie całego tekstu następującego
>> później.
>> Chciałbym, żeby przy przykładowym wywołaniu skryptu jako
>> test.cmd problematycznyCiag dalszyTekst
>> w jego środowisku było
>> %1=-F\"
>> %2=dalszyTekst
>> Dzięki za pomoc!
>
> Sam bym się chętnie dowiedział... Z googlania i eksperymentów wychodzi
> mi, że się nie da. cmd generalnie nie zachowuje się intuicyjnie i ma
> dosyć dziwny sposób działania. Dotyczy to też ograniczników ciągu
> znaków. Otóż cudzysłowy nie tylko mówią odkąd dokąd jest tekst, ale też
> same są jego częścią. Znaczenie mają też spacje. Można się o tym
> przekonać np. tak:
> C:\Users\Grzegorz\Desktop>echo "a"
> "a"
>
> C:\Users\Grzegorz\Desktop>echo "a"
> "a"
>
> C:\Users\Grzegorz\Desktop>echo a
> a
>
> C:\Users\Grzegorz\Desktop>echo a
> a
>
> Jak widać, cudzysłowy trafiają do polecenia echo, trafia do niego też
> druga spacja po echo. Powłoka więc sprawia wrażenie, że niczego tu nie
> parsuje. Jakiekolwiek inteligentne działanie można zauważyć np. przy
> rozwijaniu zmiennych, ewentualnie przy kilku argumentach.
> Znaki specjalne niby są eskejpowane za pomocą daszka, ale jakoś z
> cudzysłowami to nie działa:
> C:\Users\Grzegorz\Desktop>echo ""
> ""
>
> C:\Users\Grzegorz\Desktop>echo ^"^"
> ""
>
> Proponowałbym generalnie przesiadkę na PowerShell i danie sobie spokoju
> z przedpotopowym CMD:
>
> PS C:\Users\Grzegorz\Desktop> ./b.ps1 "-F\`"" "dalszyTekst"
> Arg: -F\"
> Arg: dalszyTekst
> PS C:\Users\Grzegorz\Desktop> gc .\b.ps1
> foreach ($arg in $args){ Write-Host "Arg: $arg";}
>

Dzięki!
Nie miałem dotychczas powodu i czasu, by nauczyć się podstaw PS, ale
widzę, że będę musiał :)
Received on Wed 25 Apr 2012 - 02:15:03 MET DST

To archiwum zostało wygenerowane przez hypermail 2.2.0 : Wed 25 Apr 2012 - 02:42:02 MET DST