Почему он не может запускать завиток с одинарной кавычкой? [Дубликат]

Вы можете легко сделать это, используя метод ожидания async в javascript.

Ниже приведен пример получения значения обещания WebRTC с использованием тайм-аута.

function await_getipv4(timeout = 1000) {
    var t1 = new Date();
    while(!window.ipv4) {
        var stop = new Date() - t1 >= timeout;
        if(stop) {
            console.error('timeout exceeded for await_getipv4.');
            return false;
        }
    }
    return window.ipv4;
}

function async_getipv4() {
    var ipv4 = null;
    var findIP = new Promise(r=>{var w=window,a=new (w.RTCPeerConnection||w.mozRTCPeerConnection||w.webkitRTCPeerConnection)({iceServers:[]}),b=()=>{};a.createDataChannel("");a.createOffer(c=>a.setLocalDescription(c,b,b),b);a.onicecandidate=c=>{try{c.candidate.candidate.match(/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r)}catch(e){}}})
    findIP.then(ip => window.ipv4 = ip);
    return await_getipv4();
};

24
задан math4tots 11 June 2014 в 23:42
поделиться

1 ответ

Одиночные кавычки вообще не используются процессором команд cmd.exe, за исключением того, чтобы заключить команду для запуска в инструкции FOR / F:

for /f %%A in ('someCommand') do ...

Или указать строку для обработки FOR / F, если используется опция USEBACKQ:

for /f "usebackq" %%A in ('some string') do ...

Все остальные цитирования, обработанные cmd.exe, выполняются с двойными кавычками. Однако есть служебные программы Windows (внешние команды), такие как WMIC, которые используют одиночные кавычки для собственных целей цитирования. Но нет стандарта - каждая утилита может свободно иметь собственную интерпретацию одинарных кавычек.

Непоследовательные правила эвакуации и цитаты, используемые cmd.exe и различными утилитами командной строки, часто заставляют правильный синтаксис, необходимый для любой конкретной ситуации.

Вот некоторые важные замечания об использовании двойных кавычек " с cmd.exe.

  • Двойные кавычки - это простой конечный автомат , Первый " включается, следующий выключается.
  • Все специальные символы обрабатываются как литеральные значения при цитировании, кроме для % и <newLine> символов, а символ ! включен, если включено замедленное расширение, а символ ^, если замедленное расширение включено, и ! также появляется где-то внутри строки.
  • Если цитирование выключено, вы можете избежать " как ^", чтобы он не включался. Но как только вы укажете, вы не сможете избежать закрытия ". Самый следующий " всегда будет отключен.
31
ответ дан dbenham 22 August 2018 в 11:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: