所以我有一个非常简单的PowerShell脚本,用于在构建期间更新版本号。
var _group = dateDim.group().reduceSum(function(d) {return d.revenue;});
var group = {
all:function () {
var g = [];
_group.all().forEach(function(d,i) {
var cumulate = 0;
var monthcount =0;
var dt =new Date( d.key);
var ct = new Date(d.key);
ct.setFullYear(ct.getUTCFullYear() -1);
_group.all().forEach(function(d2,i) {
var dt2 = new Date(d2.key);
if(dt2 <= dt && dt2 > ct){
cumulate += d2.value;
monthcount++;
}
})
if(monthcount>=11){
console.log( ' Dt ' + dt + ' ' + cumulate + ' months ' + monthcount);
g.push({key:d.key,value:cumulate})
}
});
return g;
}
};
它在ISE中完全正常,但是当我从命令行运行
时powershell.exe -Command - &lt; powershell2447437064467034590.ps1
或
powershell.exe -NoProfile -NonInteractive -ExecutionPolicy ByPass -Command - &lt; powershell2447437064467034590.ps1
所有这些确实是空白的文件。如何从ISE中工作,而不是从命令行工作?
答案 0 :(得分:1)
&#34;默认情况下,Windows Powershell不会从当前位置加载命令。如果您信任此命令,请键入&#34;。\ test.ps1&#34;
-Windows Powershell
powershell.exe .\powershell2447437064467034590.ps1
我使用Powershell命令提示符和经典命令提示符
进行了测试了解更多信息
从提升的脚本或命令Powershell 3.0
运行Update-Help
Get-help about_Command_Precedence
答案 1 :(得分:1)
我明白了。我在文件中使用了标签来打印和格式化文本。显然打破了它。如果我复制并将其复制到ISE中,它会默默地将所有选项卡转换为空格,这就是它在那里工作的原因。非常令人惊讶的是,标记器并没有对所有空格进行相同的处理。