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


    不是这意思 ,就是假如有五个CSV文件,你运行一遍BAT 有5个数据 你再运行一遍 那个表里就10个数据了

TOP

回复 16# haichuan5121
  1. if exist new.csv del new.csv
复制代码
把这个代码放第二行

TOP

本帖最后由 haichuan5121 于 2014-12-16 16:54 编辑

回复 17# 522235677


    如果每个表取两个数比如刚才的D37和D38 分别放A列和B列呢,你给的编码怎么才能直接执行 不需要按一下键盘呢,进一步的求解:能不能执行这个批处理后 新表里的数据能实现根据生成数据自动生成一曲线??

TOP

回复 18# haichuan5121
  1. @echo off & setlocal enabledelayedexpansion
  2. if exist new.csv del new.csv
  3. for /f "delims=" %%a in ('dir /b *.csv') do (
  4. for /f "skip=36 delims=" %%b in ('type "%%a"') do (
  5. set str=%%b
  6. set str=!str:,=,$!
  7. for /f "delims=, tokens=4" %%c in ("!str!") do (
  8. if "!a!"=="" (
  9. if "!x!"=="" (set x=%%c) else (set y=%%c&>>new.csv echo !x:$=!,!y:$=!&set a=1)
  10. )
  11. )
  12. )
  13. set x=
  14. set a=
  15. )
  16. pause
  17. start "" new.csv
复制代码
好麻烦,只能这样了

TOP

csv不支持生成曲线

TOP

回复 19# 522235677


    好人做到底 ,授人与鱼不如授人与渔,如果再加数据怎么办啊,提取三个呢,每行编码大概给下功能备注吧,目的本来是提取三个数据的 所以先从提取一个请教了;

TOP

回复 20# 522235677


    csv可以用EXCEL打开啊

TOP

回复 20# 522235677


    取两个数的代码里面我也没有看到37字样啊 如果我想改成查询其他行的数据怎么办啊!

TOP

大神们能修改成提取三个数据的代码吗?或者命令行提示单元格位置;获取数据的啊

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. if exist new.csv del new.csv
  3. set data=D37,E39,D38
  4. for %%a in (%data%) do (
  5. echo Process %%a
  6. set /a d+=1
  7. for %%b in (A B C D E F G H I J K L M) do (
  8. set str=%%a
  9. set /a n+=1
  10. if "!str:~,1!"=="%%b" call :take !n! !str:~1,3! !d!
  11. )
  12. set n=
  13. )
  14. (for /f "delims=: tokens=2" %%a in ('findstr /n . new.csv^|findstr "1: 4: 7:"') do set /p=%%a,<nul)>$$.csv
  15. echo.>>$$.csv
  16. (for /f "delims=: tokens=2" %%a in ('findstr /n . new.csv^|findstr "2: 5: 8:"') do set /p=%%a,<nul)>>$$.csv
  17. echo.>>$$.csv
  18. (for /f "delims=: tokens=2" %%a in ('findstr /n . new.csv^|findstr "3: 6: 9:"') do set /p=%%a,<nul)>>$$.csv
  19. move /y $$.csv new.csv >nul
  20. start "" new.csv
  21. exit
  22. :take
  23. set /a h=%2-1
  24. for /f "delims=" %%a in ('dir /b *.csv') do (
  25.         for /f "skip=%h% delims=" %%b in ('type "%%a"') do (
  26.                 set str=%%b
  27.                 set str=!str:,=,$!
  28.                 for /f "delims=, tokens=%1" %%c in ("!str!") do (
  29.                         if "!a!"=="" (set str=%%c&>>new.csv echo !str:$=!)
  30. set a=1
  31.                 )
  32. )
  33.         set a=
  34. )
  35. goto :eof
复制代码
这代码我也是醉了,效率不高,不然得下功夫

TOP

本帖最后由 haichuan5121 于 2014-12-16 20:14 编辑

回复 25# 522235677


    99.8        99.8        455        200        200
99.8        99.9        455        200        200
99.8        455        455        200       
输出格式不对哦 ,, 另是 取D37.D38.D39的数据??   要改其他单元格的怎么改哦

TOP

本帖最后由 haichuan5121 于 2014-12-17 08:59 编辑

能不能跟这个FTP下载代码合成一个啊? 下载完成后,执行大神的提取命令生成个新的表!
纯小白只能看别人的稍作修改,这个下载代码我还想只下载设定文件生成时间内的文件呢,这个时间段可以locle输入设定的!
比如只下载一周内新生成的文件,或者更高级点,提示命令行带起止日期设定的,
@echo off
rem 指定FTP用户名
set ftpUser=sputter
rem 指定FTP密码
set ftpPass=sputter
rem 指定FTP服务器地址
set ftpIP=10.30.1.4
rem 指定待下载的文件位于FTP服务器的哪个目录
set ftpFolder=/11/
set LocalFolder=F:\2  
set ftpFile=%2%/2.csv
>"%ftpFile%" (   
echo,%ftpUser%   
echo,%ftpPass%   
echo cd "%ftpFolder%"  
echo lcd "%LocalFolder%"  
echo bin   
echo mget *0.csv
start ftp -v -i -s:"%ftpFile%" %ftpIP%   
echo 任务完成...&pause>nul
)

TOP

把n个1列的文件合并为一个n列的文件:output.txt
file1.txt  file2.txt file3.txt file4.txt .........
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n=2
  4. set str=
  5. type nul>output.txt
  6. for /l %%a in (1,1,!n!) do (
  7.   set /a n1=0
  8.   for /f %%b in ('type file%%a.txt') do (
  9.     set /a n1+=1
  10.     for /l %%c in (!n1!,1,!n1!) do (
  11.        set file%%a.row%%c=%%b
  12.     )
  13.   )
  14. )
  15. for /l %%a in (1,1,!n1!) do (
  16.   for /l %%b in (1,1,!n!) do (
  17.     set "str=!str!!file%%b.row%%a!   "
  18.   )
  19.   echo !str!>>output.txt
  20.   set str=
  21. )
复制代码

TOP

修改了下,不足的用0来补。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a n=3
  4. set /a m=0
  5. set str=
  6. type nul>output.txt
  7. for /l %%a in (1,1,!n!) do (
  8.   set /a n1=0
  9.   for /f %%b in ('type file%%a.txt') do (
  10.     set /a n1+=1
  11.     for /l %%c in (!n1!,1,!n1!) do (
  12.        set file%%a.row%%c=%%b
  13.     )
  14.   )
  15.   if !n1! gtr !m! (set /a m=!n1!)
  16. )
  17. for /l %%a in (1,1,!m!) do (
  18.   for /l %%b in (1,1,!n!) do (
  19.     if "!file%%b.row%%a!"=="" (set /a file%%b.row%%a=0)
  20.     set "str=!str!!file%%b.row%%a!   "
  21.   )
  22.   echo !str!>>output.txt
  23.   set str=
  24. )
复制代码

TOP

回复 25# 522235677


    大神  有时间给把格式改成正确的吧。数据能刷了 就是格式没有按列排列

TOP

返回列表