标题: [文件操作] 求助批处理把返回值以及特定字串导入excel文件 [打印本页]
作者: wqwa 时间: 2020-6-10 14:31 标题: 求助批处理把返回值以及特定字串导入excel文件
想写个小小的 bat,用来实现将命令返回值以及命令内容导入到excel中,命令和返回值不在同一单元格,求大神帮忙指导
作者: Batcher 时间: 2020-6-10 15:30
回复 1# wqwa - >"1.csv" echo "Return","Command"
复制代码
作者: wqwa 时间: 2020-6-10 17:27
回复 wqwa
Batcher 发表于 2020-6-10 15:30
for /f "delims=" %%i in ('adb devices') do set result=!result!%%i\n
echo %result%,"adb devices">>1.csv
发现了新的问题,由于返回的内容是多行的,直接写入csv是自动多行
但是我想把这多行内容贴在一个单元格内怎么处理呢?
作者: Batcher 时间: 2020-6-10 19:40
回复 3# wqwa
加上双引号试试- echo "%result%","adb devices">>1.csv
复制代码
作者: went 时间: 2020-6-10 22:03
多行输出要换行,还要用引号- @echo off
- call :print "adb devices"
- pause&exit
- :print
- (
- echo "
- %~1
- echo ","%~1"
- )>>1.csv
复制代码
缺点就是会多出两个换行符出来
作者: wqwa 时间: 2020-6-11 11:18
回复 4# Batcher
貌似沒有效果,因為返回的信息是多行內容,使用我上面的命令只能一行一行的寫入csv文件
我想做到的就是輸入的命令內容寫在csv的第一個單元格,返回的所有內容寫在csv的第 二個單元格,樓上的同學寫的比較接近,但是多了幾行的問題如何解決呢?
先謝謝大佬們的回覆
作者: went 时间: 2020-6-11 19:33
回复 6# wqwa
set /p
不过要用for获取最后一行输出,3-4行是测试- @echo off
- setlocal enabledelayedexpansion
- call :print "dir /b /a-d"
- call :print "adb devices"
- call :print "set a"
- pause&exit
- :print
- (
- set /p="""
- set "last="
- for /f "delims=" %%i in ('%~1') do (
- if not "!last!"=="" echo !last!
- set "last=%%i"
- )
- echo !last!","%~1"
- )<nul >>1.csv
复制代码
作者: Batcher 时间: 2020-6-11 22:36
回复 6# wqwa - @echo off
- setlocal enabledelayedexpansion
- set CrLf=^
-
-
- REM 不要删除上面的空行
- for /f "delims=" %%i in ('adb devices 2^>^&1') do (
- set "result=!result!!CrLf!%%i"
- )
- >"1.csv" echo "!result!","adb devices"
复制代码
作者: wqwa 时间: 2020-6-15 13:34
回复 8# Batcher
已完美解決,多謝多謝~~~
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |