我尝试了一切,但仍然失败了。我以为我得到了它,我将发布 作为我的最后一次尝试,但仍然不够好[足够]。
脚本正在传递三个参数。域名,用户名和密码
但问题是我需要以“域”+“。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个...但是如果失败了......帮助!
答案 0 :(得分:0)
如果你想自动化某些东西(如另一个答案中所述),我的解决方案是使用适当的工具。安装Perl运行时或其他您熟悉的东西。或者使用Windows power shell
此外,除非您为脚本提供有效顶级域名列表,否则没有语言,您的脚本可以决定是否应将test.co.uk拆分为文本和co.uk或测试.co和英国。唯一可行的可能性是确保只获得没有子域部分的二级域。在这种情况下,只需在第一个点分开。
BTW:我很想知道你为什么要在Windows shell脚本中自动创建网站。你没有做任何令人讨厌的事,是吗?答案 1 :(得分:0)
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
这就是我认为你想要的。