返回列表 发帖

我顶

希这样的小技巧    多多贡献

TOP

原帖由set /p str=%%i<nul  的时候,已经把值赋予变量 str 了,可以随时对 str 做字符串操作。

不知是我的理解错误还是对此语句不了解
这样能对 str 做字符串操作吗?
我认为并没有给 变量 str 赋值。
技术问题请到论坛发帖求助!

TOP

  呵呵,确实是我错了,我错在没有实地测试就想当然了。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

看不太懂(本人基础差)以后慢慢学习。

TOP

牛人。不得不佩服。。

TOP

宝贵的经验啊,以后在实践中能用的到啊。谢谢
有些缘分是注定要失去的

TOP

原帖由 namejm 于 2008-10-7 17:54 发表

  呵呵,确实是我错了,我错在没有实地测试就想当然了。

我两个都试了,能成功写入文本的,楼主说的测试,想知道这个测试怎么进行,从哪里下手,最好能给个代码,好看看能进行测试的过程,我想我们以后也是要进行测试这一过程的
目的,学习批处理

TOP

收藏了,好好学习学习,谢谢整理指教。

TOP

回复 22楼 的帖子

@echo off
rem 这样可以对变量str1赋值
set str1=bathome
echo %str1%
rem 这样不可以对变量str2赋值
set /p str2=homebat<nul
echo %str2%
pauseCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

感动。。让新手少走弯路。

TOP

很宝贵的经验!帮楼主顶顶!!

TOP

第六点,我有不同意见,尽管我从前几点也学了不少知识!
“按照一般的思路,是在for语句中,先 set str=%%i,然后,下一步是 set str=%%i!str! ,从而实现后一句与前一句的拼接。”这话不对,其实拼接也只要一句就够了。一般的思路是这样的,循环体中只有一条语句。
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (22.txt) do (
set  str=!str!%%i
)
echo %str%
pause>nulCOPY
==========
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (22.txt) do (
set /p str=%%i<nul
)
pause>nulCOPY
set /p str=%%i<nul这句根本没给str赋值,因为=后面是提示文字,<nul从空设备输入空内容给str,只是表面上实现了不同行的拼接!

TOP

经验分享了    谢谢楼主!!!!!!

TOP

原帖由 taojunyi 于 2009-1-28 15:52 发表
第六点,我有不同意见,尽管我从前几点也学了不少知识!
“按照一般的思路,是在for语句中,先 set str=%%i,然后,下一步是 set str=%%i!str! ,从而实现后一句与前一句的拼接。”这话不对,其实拼接也只要一句就够了 ...

  呵呵,在这里我只是想展示常规的思路,并没有对错之分,只有简洁与否之分。

set /p str=%%i<nul这句根本没给str赋值,因为=后面是提示文字,<nul从空设备输入空内容给str,只是表面上实现了不同行的拼接!

  你这个分析很正确,屏幕上出现的内容并没有真正地赋予str,就像 "set /p str=请输入内容:"这句一样,"请输入内容:"并没有赋予str,而是只接收手工输入的内容。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

楼主,谢谢了!!

真心感谢!!

TOP

返回列表