[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理生成一个数组。求帮助批改

目的,根据输入的行数和列数,生成一个csv表格。如3行4列,结果:
1,2,3,4
2,3,4,5
3,4,5,6
希望生成的行100万,列5000。我尝试的代码:
@echo off
echo 输入行数
set /p hall=
echo 输入列数
set /p lall=
set /a hnum=1
set /a tem=0
set hchart=0

:st

if %hnum% leq %hall% ( goto addhang
                      :write
                      echo %lnum% >> 1.csv
                      echo 完成写入第%hnum% 行
                      set /a hnum=%hnum%+1
                      goto st
)

pause
exit

:addhang

echo 开始写入%hnum%整行
set  lnum=%hnum%
set ltemp=1

:addh2

set hchart=%lnum%,
if %ltemp% lss %lall% ( set hchart=%lnum%,
                        set /a lnum=%lnum%+1
                        set /a ltemp=%ltemp%+1
                        set /p =%hchart%<nul >> 1.csv
                        goto addh2
)
goto write

尝试可以正常运行,但是速度相当的慢。也就是效率很低。
第一个问题,如何修改以便提升效率,
第二个问题,set hchart=%lnum%,,为什么一定要放在外面,放在if后就会出现得出这样的结果
1,2,4
3,2,3,5
4,3,4,6

新手拜大神们解惑。

回复 3# Batcher


    自细学习了,虽然还是不太明白,不过知道了使用  setloacl ENABLEDELAYEDEXPANSION 这个命令来启用"延迟环境变量扩展",变量格式用!name!替换%name%,就可以在嵌套里正常给变量赋值了。

TOP

回复 7# buyiyang


    感谢,使用你的方法,已解决问题。

TOP

返回列表