批处理的exe选项是什么?

时间:2014-04-01 04:11:04

标签: batch-file powershell exe

我需要“翻译”或将旧的批处理文件重写为powershell。

Command是一个exe文件。它看起来大致如下:

  

dir1 \ dir2 \ XsltTransform.exe -i dir_1 \ dir_2 \ blah.xml -x   dir_x \ dir_y \ something.xslt -o path1 \ path2 \ result.html

我对 -i,-x, -o 位有点困惑

另外一些命令甚至还有 -r,-p,-a,-b,-l

我知道他们可能意味着某种选择。

但我似乎无法在Google或StackOverflow上找到。

2 个答案:

答案 0 :(得分:0)

您的示例代码有一个EXE文件。我假设您可以访问生成EXE的源代码。

-i -x -o都是输入参数。 在EXE 中的某个地方,有一些处理这些参数的代码并将它们存储到变量中。

-i dir_1\dir_2\blah.xml -x dir_x\dir_y\something.xslt -o path1\path2\result.html

因此,dir_1\dir_2\blah.xml会(可能)存储到某个变量中以供进一步处理,依此类推。

在阅读此答案时,请同时阅读this。保持Microsoft TechNet和MSDN网站方便 - 它有帮助:)

为了能够使用“-x -y”参数启动Powershell脚本,您需要在脚本的顶部定义以下内容。

基本用法

Param(
  [string]$x,
  [string]$y
)

在这里,您将脚本称为script -x -y

这将接受两个参数-x和-y。无论您输入什么内容都存储为字符串(在此示例中),变量$x $y

如果您想要任何其他数据类型,只需更改[string]值。

高级用法

  • 您还可以使用[alias("myalias")]构造使参数具有别名。如果您有一个长变量名称,但命令行使用需要更短的别名,这会有所帮助。
  • 您可以使用[parameter(Mandatory = $false)]构造使参数可选。

e.g。

Param(
[parameter(Mandatory = $true)]
[alias("myalias1")]
[string]$mylongvariablename1,

[parameter(Mandatory = $false)]
[alias("myalias2")]
[string]$mylongvariablename2,
....

在上面的示例中,您将脚本调用为script -myalias1 -myalias2(myalias2当然是一个可选的参数)。

答案 1 :(得分:0)

我想我刚才通过四处寻找答案。

首先你可以使用

去目录
  
    

帮助[whatever_command]     它将为您提供所有选项

  

或者有时你必须在我的情况下使用(exe文件)

  
    

XsltTransform /?