Отделение «тела» доменного имени от расширения - оболочка DOS - PullRequest
0 голосов
/ 22 января 2009

Я перепробовал все возможное, но все равно не получилось. Я думал, что получил это в момент, который я отправлю
как моя последняя попытка, но все еще не хорошо [достаточно].

Скрипту передаются три аргумента. Доменное имя, имя пользователя и пароль.
Но проблема в том, что мне нужен домен, разделенный в формате «домен» + «.com». Две переменные.
Я попытался разделить его с помощью чит-кода name.extension, но он работает не совсем хорошо.

Проверьте простой код:

@echo off
echo.
set domain=%~n1
set ext=%~x1
echo %DOMAIN%
echo %EXT%
echo.

Когда вы попробуете это, вы получите:

D:\Scripts\test>test.bat domain.com

domain
.com

D:\Scripts\test>test.bat domain.co.uk

domain.co
.uk

Сначала, очевидно, работает, но только потому, что я могу обмануть свой путь.
Струнные операции в DOS Shell - это боль в заднице. Я мог бы убедить
сценарист, чтобы передать мне 4 аргумента вместо 3 ... но в случае неудачи ... ПОМОГИТЕ!

Ответы [ 2 ]

0 голосов
/ 23 января 2009

Windows поставляется с Windows Scripting Host, который позволяет запускать javascript.

Измените командный файл на:

@echo off
cscript //Nologo test.js %*

Создать test.js:

if (WScript.Arguments.Length > 0) {
    var arg = WScript.Arguments.Item(0);
    var index = arg.indexOf('.');
    if (index != -1) {
        var domain = arg.substring(0, index);
        var ext = arg.substring(index);
        WScript.Echo(domain);
        WScript.Echo(ext);
    } else WScript.Echo("Error: Argument has no dots: " + arg);
} else WScript.Echo("Error: No argument given");

И вы можете использовать его:

C:\Documents and Settings\Waqas\Desktop>test.bat domain.com
domain
.com

C:\Documents and Settings\Waqas\Desktop>test.bat domain.co.uk
domain
.co.uk

И это делает то, что я думаю, вы хотели.

0 голосов
/ 23 января 2009

Если вы хотите автоматизировать что-то (как указано в другом ответе), мое решение будет заключаться в использовании соответствующих инструментов. Установите среду выполнения Perl или что-то еще, с чем вам удобно. Или используйте Windows Power Shell

Кроме того, если вы не предоставите свой сценарий со списком допустимых доменов верхнего уровня, ваш сценарий не сможет ни на каком языке решить, нужно ли разделять test.co.uk на текстовые и co.uk или test .co и великобритания Единственно возможная возможность - убедиться, что вы получаете только домены второго уровня без частей поддоменов. В этом случае просто разбейте первую точку.

Кстати: мне любопытно, почему вы захотите автоматизировать создание веб-сайтов с помощью сценария оболочки Windows. Ты ничего плохого не делаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...