Вы можете легко сделать это, используя метод ожидания 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();
};
Одиночные кавычки вообще не используются процессором команд 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>
символов, а символ !
включен, если включено замедленное расширение, а символ ^
, если замедленное расширение включено, и !
также появляется где-то внутри строки. "
как ^"
, чтобы он не включался. Но как только вы укажете, вы не сможете избежать закрытия "
. Самый следующий "
всегда будет отключен.