Próbuję zastąpić wszystkie wystąpienia ~
z {~}
w skrypcie wsadowym, tak aby VBScript nie zakładał, że mam zamiar nacisnąć klawisz enter, gdy przekazuję go do sendKeys, jednak zmienna ciągle jest zastępowana przez ciąg znaków, który ma na celu Wymień.Jak uciec "~" w poleceniu set/replace?
Na przykład
rem Intended function;
rem input = Hello~world.
rem output = Hello{~}world.
Jednak za każdym razem, to albo nie robi nic, albo ustawia refVar do dosłownego łańcucha refVar:~={~}
.
Oto, co próbowałem;
set refVar=!refVar:~={~}!
rem Also
set refVar=%refVar:~={~}%
rem and...
set refVar=%refVar:^~=^{^~^}%
rem and of course;
set refVar=!refVar:^~=^{^~^}!
rem and even:
set "pre=~"
set "post={~}"
set refVar=%refVar:!pre!=!post!%
rem and the same set commands with;
set refVar=!refVar:%pre%=%post%!
Czy brakuje mi sposobu na ucieczkę? Jestem prawie pewien, że ma to związek z ~
będącym postacią pozycyjną w podobnym poleceniu.
Rozumiem, że istnieje sposób, aby to naprawić w VBScript, ale to przeszkadza mi mieć ograniczenie bez widocznych obejść do mnie.
To jest rzeczywiście zgrabna odpowiedź. Lepszym rozwiązaniem może być użycie argumentów do wyszukiwania i zamiany łańcucha, aby ułatwić obsługę. –
Haha, znam polecenia skryptów w plikach wsadowych w większości przypadków, ale domyślam się, że polecenia pomocy są dla innych szukających tej samej odpowiedzi. Tak czy owak, dziękuję, cieszę się, że wiem, że rozwiązaniem nie była tylko pewna kolejność ograniczników, których nie udało mi się wypróbować. – Bloodied
@Arescet Tak, dodałem listę używanych poleceń i jak uzyskać pomoc dla wszystkich czytających tę odpowiedź, ponieważ prawie zawsze robię odpowiedzi na mój plik wsadowy. Było dla mnie oczywiste, że dobrze znasz wszystkie te polecenia. – Mofi