Board logo

标题: [其他] 批处理中含中文路劲无法运行,怎么解决? [打印本页]

作者: 草青青2020    时间: 2020-5-26 10:21     标题: 批处理中含中文路劲无法运行,怎么解决?

如题,因涉及到异地备份,小弟采用robocpy命令执行,在执行中发现一些问题?
如:
    1:robocopy命令中的源文件(目录)必须是共享名,而这共享名又是中文名的。问题就来了:
          将中文名添加到BAT文件中,一保存就是乱码,运行报错:找不到目标!
          尝试将该bat文件保存为非ansi编码,每个都试了,还是bat没执行!
          尝试将关键语句复制到CMD下执行是正常的!
请问,这个是怎么回事?该怎么改进?十分感谢!
作者: Batcher    时间: 2020-5-26 10:35

回复 1# 草青青2020


    请把你的bat文件打包压缩传上来看看
作者: 草青青2020    时间: 2020-5-26 11:41

就一条最重要语句:
robocopy //10.*.*.*/公司标准 /S D:\\pmgbak\oabak /E /B /COPYALL /MT:96 /R:3 /W:3 /MIR
作者: smss    时间: 2020-5-26 11:48

含中文需要保存为ansi编码 否则乱码
作者: 草青青2020    时间: 2020-5-26 16:14

回复 4# smss


    保存为ansi编码后,该批处理不运行啊!
    复制保存后bat,在dos下运行提示找不到目录!
   
    只有保存为为非ansi编码后,复制该语句在dos下运行是正常的!
    但直接运行这bat文件会一闪而过,没有效果!
作者: 草青青2020    时间: 2020-5-26 16:15

回复 2# Batcher


就一条最重要语句:
robocopy //10.*.*.*/公司标准 /S D:\\pmgbak\oabak /E /B /COPYALL /MT:96 /R:3 /W:3 /MIR
作者: flashercs    时间: 2020-5-26 17:09

  1. robocopy "\\10.1.2.3\公司标准"  "D:\\pmgbak\oabak"  /B /MIR /COPYALL /MT:96 /R:3 /W:3
复制代码

作者: Batcher    时间: 2020-5-26 17:23

回复 5# 草青青2020


    请把你的ANSI编码的bat文件和非ANSI编码的bat文件打包压缩传上来我试试
作者: smss    时间: 2020-5-26 19:14

我都乱试的
  1. robocopy "\10.*.*.*\公司标准" "D:\pmgbak\oabak" /S/E/B/COPYALL /MT:96 /R:3 /W:3 /MIR
复制代码

作者: a20150604    时间: 2020-5-26 19:23

BAT 文件保存为 ANSI 编码, 并配合 936 代码页
  1. chcp 936
复制代码

或者 保存为 UTF-8 无 BOM 编码, 配合 65001 代码页
  1. chcp 65001
复制代码

作者: 草青青2020    时间: 2020-5-26 20:26

回复 7# flashercs


    感谢回复,一保存为ANSI就是乱码,保存为其它格式,BAT运行一闪而过!
作者: 草青青2020    时间: 2020-5-26 20:27

回复 9# smss


    感谢回复,一保存为ANSI就是乱码,保存为其它格式,BAT运行一闪而过!
作者: 草青青2020    时间: 2020-5-26 20:28

回复 10# a20150604


    能详细点吗,我纯小白一枚!
    谢谢!
作者: smss    时间: 2020-5-26 20:49

  1. chcp 936
  2. robocopy //10.*.*.*/公司标准 /S D:\\pmgbak\oabak /E /B /COPYALL /MT:96 /R:3 /W:3 /MIR
复制代码

作者: 草青青2020    时间: 2020-5-26 21:21

回复 14# smss


    还是一样的,一保存就乱码!
作者: smss    时间: 2020-5-26 22:31

回复 15# 草青青2020
你使用Notepad++来保存一下试试 目测是你电脑无法正确保存为ansi编码导致
解决Bat保存为UTF8时乱码 即含有中文UTF8编码可以正常运行
  1. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "CodePage" /t REG_DWORD /d 65001
  2. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "WindowSize" /t REG_DWORD /d 1572944
  3. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "FontSize" /t REG_DWORD /d 786432
  4. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "FontFamily" /t REG_DWORD /d 54
  5. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "FontWeight" /t REG_DWORD /d 400
  6. reg add "HKCU\Console\C:\Windows_system32_cmd.exe" /f /v "FaceName" /t REG_SZ /d "Lucida Console"
复制代码

作者: flashercs    时间: 2020-5-27 00:33

回复 11# 草青青2020


1.脚本最前面添加一行代码
  1. chcp 65001
复制代码
2.保存为utf8-nobom编码,一定不要用 记事本 来保存脚本,可以用notepad++编辑脚本.




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2