PHP, 22 bytes
`<?=PATH_SEPARATOR>":";`
imprime 1se o separador de caminho é ponto-e-vírgula (dois pontos ou vazio para todos os outros sistemas operacionais, exceto para DOS e OS / 2), senão nada.
também 22 bytes , mas não tão seguro:
<?=strpos(__FILE__,92);
imprime um número inteiro positivo se o caminho do arquivo contiver uma barra invertida; mais nada.
Uma alternativa segura com 27 bytes : <?=DIRECTORY_SEPARATOR>"/";imprime 1ou nada.
Uma descoberta estranha : <?=__FILE__[1]==":";( 20 bytes ) também deve ser, não segura, mas ok. Mas, embora __FILE__finge ser um string (eu tentei var_dumpe gettype), indexando ele lança um erro, a menos que você copiá-lo em outro lugar (concatenação também funciona) ou usá-lo como um parâmetro de função.
Edit:
<?=(__FILE__)[1]==":";(também 22 bytes ) funciona no PHP 7; mas isso ocorre porque os parênteses copiam o valor da constante para uma variável temporária.
27 bytes : <?=stripos(PHP_OS,win)===0;
testa se a PHP_OSconstante predefinida começa com win(sem distinção entre maiúsculas e minúsculas; Windows, WIN32, WINNT, mas não CYGWIN ou Darwin); imprime 1para Windows, senão nada.
17/18 bytes :
<?=strlen("
")-1;
imprime 1se foi armazenado com quebra de linha do Windows (também no DOS, OS / 2 e Atari TOS - embora eu duvide que alguém tenha compilado o PHP para o TOS) 0.
Você também pode verificar a constante PHP_EOL.
mais opções:
PHP_SHLIB_SUFFIXestá dllno Windows, mas não necessariamente lá.
php_uname()retorna informações sobre o sistema operacional e muito mais; começa com Windowspara Windows.
$_SERVER['HTTP_USER_AGENT']conterá Windowsquando chamado em um navegador no Windows.
<?=defined(PHP_WINDOWS_VERSION_BUILD);(38 bytes) funciona em PHP> = 5.3
conclusão
A única maneira segura de dizer se é realmente o Windows, não algo parecido, parece ser uma verificação do nome do sistema operacional. Para PHP: php_os()pode ser desativado por motivos de segurança; mas PHP_OSprovavelmente sempre conterá as informações desejadas.