Batch file Helm和Kustomize-用于Windows的渲染器后shell脚本

Batch file Helm和Kustomize-用于Windows的渲染器后shell脚本,batch-file,sh,kubernetes-helm,kustomize,Batch File,Sh,Kubernetes Helm,Kustomize,我需要一个相当于Unix shell的脚本: #!/bin/bash # save incoming YAML to file cat > all.yaml # modify the YAML with kustomize kustomize build . && rm all.yaml 但是对于Windows。我的结局是: @echo off type > all.yaml kustomize build . 但它不工作-生成的文件是空的。我请求帮助 命令cat

我需要一个相当于Unix shell的脚本:

#!/bin/bash
# save incoming YAML to file
cat > all.yaml
# modify the YAML with kustomize
kustomize build . && rm all.yaml
但是对于Windows。我的结局是:

@echo off
type > all.yaml
kustomize build .
但它不工作-生成的文件是空的。我请求帮助

命令
cat>all.yaml
获取标准输出并将其存储在all.yaml文件中。Helm在std in/out上运行,在文件上运行Kustomize,因此该脚本确保了这些工具之间的正确通信。向舵手提供的脚本类似于:
helm-upgrade--post-renderer-kustomize
(脚本保存在kustomize文件中)

编辑

简化我查找的Windows与Unix的Windows等价:

whoami | cat > file.txt

终于解决了!并提出:

@echo off
more > all.yaml
kustomize build . && del all.yaml

这就是运行批处理文件时出现的错误:
命令的语法不正确。
。它来自
TYPE
命令,因为您没有向它提供要输出的文件。如果您查看帮助,它清楚地定义了文件名不是可选的<代码>键入[drive:][path]filename。什么是
cat>all.yaml
应该做什么?如果没有文件,它将读取标准输入。您确定它至少不应该是
cat*>all.yaml
?,(可能是
cat*.yaml>all.yaml
)。然后在Windows中,您将执行类似的操作,
type*>all.yaml
,(可能是
type*.yaml>all.yaml
)。如果您的shell脚本使用标准输入,那么为了在批处理/cmd脚本中执行相同的操作,您需要使用标准输入,而且您显然没有告诉我们这是什么,或者实际上是否有。抱歉,不准确。命令cat>all.yaml获取标准输出并将其存储在all.yaml文件中。Helm在std in/out上运行,在文件上运行Kustomize,因此该脚本确保了这些工具之间的正确通信。向helm提供的脚本类似于:helm upgrade——后期渲染器kustomize(脚本保存在kustomize文件中)。我在WSL Ubuntu发行版上测试了它,效果很好。你是用重定向的STDIN运行脚本吗?像
,或者
program.ext | script.bat…
?@aschipfl Helm将脚本作为“后期渲染器”运行,但我假设它可能看起来像:
Helm template |/kustomize
-所以,第二个选项。