楼 主
怎么把一个文本文件第三行赋给变量str?
发表于 2008-08-26 13:20 · 中国 上海 杨浦区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
第 2 楼
发表于 2008-08-26 13:27 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set row=0
for /f "tokens=*" %%a in (a.txt) do (
set /a row+=1
if !row! equ 3 (
set str=%%a
echo !str!
goto :eof
)
)
第 3 楼
发表于 2008-08-26 13:35 · 中国 上海 杨浦区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
我用了大哥的代码,怎么不能成功将%str% echo 到new.txt
第 4 楼
发表于 2008-08-26 13:37 · 中国 上海 杨浦区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
第 5 楼
发表于 2008-08-26 13:46 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
for /f "skip=2 tokens=*" %%a in (a.txt) do (
>"new.txt" echo %%a
goto :eof
)
第 6 楼
发表于 2008-08-26 13:56 · 中国 上海 杨浦区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
HAT大哥 出怪问题了,其他TXT用你的代码都行,可是唯独下面一个TXT文本不行
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\KINGSOFT\ANTIVIRUS]
"ProgramPath"="C:\\Program Files\\Kingsoft\\Kingsoft Internet Security 2008\\"
第 7 楼
发表于 2008-08-26 13:58 · 中国 上海 杨浦区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
我是想把第三行提出出来给变量STR,然后用FOR命令,改成C:\Program Files\Kingsoft\Kingsoft Internet Security 2008\
第 8 楼
Re 7楼
发表于 2008-08-26 14:27 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
赋值给变量了,你先试试自己的思路来修改吧。
@echo off
for /f "skip=2 tokens=*" %%a in (a.txt) do (
set str=%%a
goto :show
)
goto :eof
:show
>"new.txt" echo %str%
第 9 楼
Re 6楼
发表于 2008-08-26 14:29 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
对于unicode编码格式的文档,需要先type一下。
@echo off
for /f "skip=2 tokens=*" %%a in ('type "a.txt"') do (
set str=%%a
goto :show
)
goto :eof
:show
>"new.txt" echo %str%
第 10 楼
发表于 2008-08-26 14:52 · 中国 上海 普陀区 电信
新手上路
★
积分 14 发帖 7 注册 2008-08-25 10:53 17年会员 UID 124098 性别 男
状态 离线
Originally posted by HAT at 2008-8-26 02:29 PM:
对于unicode编码格式的文档,需要先type一下。
@echo off
for /f "skip=2 tokens=*" %%a in ('type "a.txt"') do (
set str=%%a
goto :show
)
goto :eof
: ...
echo !str!
和echo %str%有什么区别?
第 11 楼
发表于 2008-08-26 15:17 · 中国 上海 静安区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
貌似!str!用在enabledelayedexpansion开启延时的情况下,而%str%用在没有开启的情况下
第 12 楼
发表于 2008-08-26 15:19 · 中国 上海 静安区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
对于6楼的文本1.txt,我已经经过代码的修改提取到了C:\Program Files\Kingsoft\Kingsoft Internet Security 2008\ ,但是想问下HAT,下面的代码能否压缩下,比如两个for命令合并在一起?两条set str替换命令合并在一起?
@echo off
for /f "skip=2 tokens=*" %%a in ('type "1.txt"') do set str=%%a
set str=%str:\\=\%
set str=%str:"=-%
for /f "tokens=3 delims=-" %%a in ("%str%") do set str=%%a
echo %str%
pause
第 13 楼
Re 10楼
发表于 2008-08-26 15:24 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
第 14 楼
Re 12楼
发表于 2008-08-26 15:29 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
for /f "skip=2 tokens=2 delims==" %%a in ('type "1.txt"') do set str=%%a
set str=%str:\\=\%
set str=%str:"=%
echo %str%
第 15 楼
发表于 2008-08-26 15:34 · 中国 上海 静安区 电信
初级用户
★★
积分 191 发帖 86 注册 2008-08-18 12:12 17年会员 UID 123477 性别 男
状态 离线
谢谢,原来是换了种思路,以=为分隔符,取等号后一段文字,然后把\\替换成\,把“替换成空,就去掉了引号。HAT好强!
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正