Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell从文本文件中的行中获取多个参数,并确定要为另一个脚本提供多少个参数_Powershell_Command Line Arguments - Fatal编程技术网

Powershell从文本文件中的行中获取多个参数,并确定要为另一个脚本提供多少个参数

Powershell从文本文件中的行中获取多个参数,并确定要为另一个脚本提供多少个参数,powershell,command-line-arguments,Powershell,Command Line Arguments,处理一个PS脚本,该脚本接受域拥有的所有信任,并生成一个包含这些域(docs.example.com)的文本文件,然后按时段分割 alladtrustsformated.txt 此文件包含 ` aaa.domain.org bbb.subdomain.differentdomain.org ccc.some.other.domain.org ddd.domain BareWinDomain` 主脚本需要有1-7个输入参数 (带.as字段分隔符的域长度) 这

处理一个PS脚本,该脚本接受域拥有的所有信任,并生成一个包含这些域(docs.example.com)的文本文件,然后按时段分割

alladtrustsformated.txt 此文件包含

`   aaa.domain.org 
    bbb.subdomain.differentdomain.org
    ccc.some.other.domain.org
    ddd.domain
    BareWinDomain`
主脚本需要有1-7个输入参数 (带.as字段分隔符的域长度)

这很好,现在我需要做的就是找出如何确定字段,以提供另一个主脚本,该脚本将对域运行AD调用(Get ADComputer),以输出需要监视的服务器。获取当前所有服务器的主脚本必须手动运行

(e.g.  MasterScript.ps1 -DOMAIN aaa -DC1 aaa -DC2 aaa -DC3 bbb -DC4 org )
我希望获得AD信任,然后遍历域文件(在中)并查找所有以服务器作为属性的系统。我希望主脚本读入主域列表,并动态计算出有多少个参数(即FQDN中的域部分)并使用FQDN的正确数字数据格式化主脚本(请参见上文)

这必须比我现在的方法更简单。我想避免运行一个函数来计算域参数的数量,并将它们放入要读取的文件中(例如1Arg.txt 2Arg.txt 3Arg.txt)

一如往常,我要提前表示感谢


//\

如果不想修改主脚本,应使用参数创建一个变量,如下所示:

$params = @{}
gc AllADTrustsFormatted.txt |% {
   $parts = $_ -split "\."
   $params.DOMAIN = $parts[0]
   1..($parts.Count - 1)|% {
      $params."DC$_" = $parts[$_] 
   }
}
& MasterScript.ps1 @params

很抱歉,如果这不是您想要的,那么很难弄清楚脚本到底应该传递给主脚本什么…

如果您不想修改主脚本,您应该创建一个带有参数的变量,如下所示:

$params = @{}
gc AllADTrustsFormatted.txt |% {
   $parts = $_ -split "\."
   $params.DOMAIN = $parts[0]
   1..($parts.Count - 1)|% {
      $params."DC$_" = $parts[$_] 
   }
}
& MasterScript.ps1 @params

很抱歉,如果这不是您想要的,那么很难确定脚本应该传递给主脚本的内容…

这看起来正是需要的!谢谢Hellon,你太棒了!现在尝试。我刚刚犯了一个错误,代码“$params=@{}”应该是第一个命令这看起来正是需要的!谢谢Hellon,你太棒了!现在尝试。我刚刚犯了一个错误,这个代码“$params=@{}”应该是第一个命令