BAT脚本类型转化问题

今执行意脚本,部分内容如下:
for /f %%i in ('ajsshow -F AJSROOT1 -f ^%%I %1') do set job_num=%%i
::set job_num=%1

::得到记录文件名
if %job_num% LSS 10 (
set log_o_file=%source_path%\M_JPQSTDO_00000%job_num%
set log_e_file=%source_path%\M_JPQSTDE_00000%job_num%
) else (
if %job_num% LSS 100 (
set log_o_file=%source_path%\M_JPQSTDO_0000%job_num%
set log_e_file=%source_path%\M_JPQSTDE_0000%job_num%
) else (
if %job_num% LSS 1000 (
set log_o_file=%source_path%\M_JPQSTDO_000%job_num%
set log_e_file=%source_path%\M_JPQSTDE_000%job_num%
) else (
if %job_num% LSS 10000 (
set log_o_file=%source_path%\M_JPQSTDO_00%job_num%
set log_e_file=%source_path%\M_JPQSTDE_00%job_num%
) else (
if %job_num% LSS 100000 (
set log_o_file=%source_path%\M_JPQSTDO_0%job_num%
set log_e_file=%source_path%\M_JPQSTDE_0%job_num%
) else (
set log_o_file=%source_path%\M_JPQSTDO_%job_num%
set log_e_file=%source_path%\M_JPQSTDE_%job_num%
)
)
)
)
)

for语句得到的job_num,感觉不是数值型的,下面的if根本就没用,走不进去的。我自己直接赋值给job_num的话,下面的if是没问题的,当然通过for语句是可以获得job_num的值的.
想请教下,通过for获得的job_num的值,如果不是数值型的,要如何转化呢?
要是字符型的话,假如想通过job_num长度来判断,要如何去写呢?还请指点,谢谢!!!
这程序是在64位Windows机上出现的问题。但是同一脚本放到32位机上是没有问题的。说来也奇怪,懂的可以多加以指点

刚又试了下,发现如果if中不加set语句改为如下格式的话
if %job_num% LSS 10 (
echo "0000" >>C:\test.txt
) else (
if %job_num% LSS 100 (
echo "111111" >>C:\test.txt
) else (
if %job_num% LSS 1000 (
echo "2222" >>C:\test.txt
) else (
if %job_num% LSS 10000 (
echo "33333" >>C:\test.txt
) else (
if %job_num% LSS 100000 (
echo "44444" >>C:\test.txt
) else (
echo "55555" >>C:\test.txt
)
)
)
)
)
test.txt中会出现值的,程序也能成功结束。为什么if中一加入set语句就会出问题?

很简单,只要加2个字符
for /f %%i in ('ajsshow -F AJSROOT1 -f ^%%I %1') do set job_num=%%i
改成
for /f %%i in ('ajsshow -F AJSROOT1 -f ^%%I %1') do set/a job_num=%%i追问

你好,我试了下,还是不行,这是不是和环境变量有关系啊?我之后改为了判断job_num位数比如job_num得到的是1654,我打印出来的个数是4,但是然后在if判断去匹配,发现里边的日志根本就不打印的。
if %count% EQU 4 (
echo %count% >>C:\text1.txt
set log_o_file=M_JPQSTDO_00%job_num%
set log_e_file=M_JPQSTDE_00%job_num%
)
这样没进去,log_o_file的值获取到的也是错误的。
请问您大概知道是什么地方的问题吗?

追答

if %count% EQU 4
改成
if "%count%" EQU "4"
试试

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答