java项目使用winrm4j 命令中含有特殊字符和读取文件内容乱码问题。使用版本是0.12.3

在使用winrm4j进行远程操作时,如果命令中包含特殊字符如中括号[],在Powershell下需进行转义。针对文件名[P]test.xml,需用`[[`进行转义,并将路径置于单引号中。当文件内容出现乱码,即使指定-EncodingUTF8也无法解决。解决方法是在执行命令前使用`chcp65001`设置命令窗口编码为UTF-8。
        <dependency>
            <groupId>io.cloudsoft.windows</groupId>
            <artifactId>winrm4j</artifactId>
            <version>0.12.3</version>
        </dependency>

  • 在执行的命令中含有特殊字符

 命令中含有 中括号 []  在使用powershell 执行命令时,中括号表示强制转换运算符,就需要转义处理。文件名称是 [P]test.xml 包含有中括号,在单个中括号前面使用 ``转义处理,在将整个文件路径放在单引号中。有的特殊字符使用cmd 可以正常执行,使用powershell执行时需要特殊处理。

powershell type 'D:\\``[P``]test.xml' 
  •  在使用type 或 get-content 命令获取文件内容时,文件内容乱码。

 即使加上了 -Encoding  UTF8 也乱码。

powershell type 'D:\\``[P``]test.xml'  -Encoding UTF8 

此时需要设置命令窗口的编码格式,在执行命令之前 先执行 chcp 65001 

chcp 65001 | powershell type 'D:\\``[P``]test.xml'

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值