我正在尝试制作一个取消隐藏USB文件夹的程序。 有时当pc中有病毒时,所有数据都隐藏在文件夹名称“”(ASCII空间)中,属性系统和隐藏。当我输入命令时
attrib " " -h -s
在cmd中,它撤消了hide和system属性,但当我使用bat文件键入相同的命令时,它显示错误
G:\>attrib "á" +h +s
File not found - á
答案 0 :(得分:2)
公然mojibake案。 证明:重现问题,复制&将下一个代码段粘贴到一个打开的cmd
窗口中(而不是批处理文件中):
echo OFF
chcp 1250
echo(dir /B /S /A " ">33782406.bat
33782406.bat
echo no-break space 0xA0 = Alt+0160>" "
type 33782406.bat
33782406.bat
chcp 852
type 33782406.bat
33782406.bat
echo ON
<强>输出强>:
==> echo OFF
chcp 1250
Active code page: 1250
echo(dir /B /S /A " ">33782406.bat
33782406.bat
File Not Found
echo no-break space 0xA0 = Alt+0160>" "
type 33782406.bat
dir /B /S /A " "
33782406.bat
D:\bat\UnASCII Names\
chcp 852
Active code page: 852
type 33782406.bat
dir /B /S /A "á"
33782406.bat
File Not Found
echo ON
==>
结论:使用适当的代码页(字符集)运行脚本,与保存的批处理文件编码相同(Windows记事本的ANSI
符合例如CP1250
或{{ 1}}取决于您的区域设置,另请参阅CP1252
工具)。
下一张图片说明从原始代码行复制的charmap
不是ASCII空间。