码迷,mamicode.com
首页 > 其他好文 > 详细

bat常见报错

时间:2019-10-30 18:22:26      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:poc   转换   title   运行   ansi   引号   运算   set   导致   

1.无法识别的命令等
可能为中文字符编码等问题,破坏了bat文件格式,建议去掉中文,加上引号或者重新创建文件。
例如:
@echo off
%~d0
cd /d %~dp0
title epoch时间转换(%cd%)
去掉中文或者换成字母就可以了。

2.无法识别的运算符,但运行结果真确
可能碰到了不识别的符号,或者中文符号,导致无法识别,被忽略掉。
例如:
set /a epoch=enter epoch:
set tm_sec=%epoch% %% 60;
set /a epoch /= 60;
set tm_min=%epoch% %% 60;
set /a epoch /= 60;
set tm_hour=%epoch% %% 24;
set /a epoch /= 24;
set tm_mday=%epoch% %% 31 +1;
set /a epoch /= 31;
set tm_mon=%epoch% %% 12;
set tm_year=%epoch% / 12 + 1988;
echo "time:"%tm_yeaer%-%tm_mon%-%tm_mday% %tm_hour%:%tm_min%:%tm_sec%

3.显示结果与预期的不符合
一般得考虑作用域的问题,可以使用:
setlocal enabledelayedexpansion
或者变量引用的时候用!aaa!代替%aaa%.

bat常见报错

标签:poc   转换   title   运行   ansi   引号   运算   set   导致   

原文地址:https://www.cnblogs.com/jfqy/p/11766380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!