Talend tSystem组件运行bat批处理仅打印内容不执行如何解决
故障原因
当前设备Windows系统的.bat批处理文件默认关联配置损坏。tSystem组件调用外部命令时会直接遵循系统文件关联规则,没有主动触发命令行解析逻辑,所以只会直接打印批处理的文本内容,不会实际执行脚本。相同配置在其他设备正常运行,就是因为其他设备保留了系统默认的批处理文件执行关联。
解决方案
方案1:直接修改tSystem组件配置(最快生效,无需改动系统设置)
不要在Command配置栏直接填写批处理路径,改为显式调用cmd.exe执行脚本,配置值改为:cmd /c "C:\Users\Account\Documents\Batch.bat"
注意路径用单反斜杠即可,不需要双反斜杠转义;/c参数的作用是让cmd执行完脚本后自动退出,避免进程挂起。
如果你的批处理脚本里有读取相对路径文件的逻辑,同步把tSystem的Working directory配置为批处理所在目录C:\Users\Account\Documents\即可。
另外你贴的输出里有Press any key to continue...,说明脚本末尾写了pause命令,Talend执行组件时没有交互终端,会一直卡在等待按键的步骤,建议把批处理里的pause删掉,避免作业卡死。
方案2:修复系统文件关联(根治问题,和其他设备行为一致)
如果不想每次调用批处理都手动加cmd前缀,修复系统的.bat文件关联即可:
- 以管理员权限打开命令提示符
- 依次执行两条命令重置关联:
assoc .bat=batfile ftype batfile="%1" %*
- 执行完成后重启Talend,原有配置即可正常运行。
内容的提问来源于stack exchange,提问作者Young Pattewa
相关产品推荐
相关产品推荐

