找回密码
 加入
搜索
查看: 3812|回复: 14

[AU3基础] DOS下的>>用au3 怎么写?【已解决】

 火.. [复制链接]
发表于 2011-2-3 11:51:17 | 显示全部楼层 |阅读模式
本帖最后由 love5173 于 2011-4-11 23:59 编辑

DOS下的“>>”命令简洁好用,我没看见有这个功能的函数啊!
FileWrite ( "文件句柄/文件名", "文本/数据" ) 需要打开文本文件
_FileWriteToLine($sFile, $iLine, $sText [, $fOverWrite = 0])要指定行,如果我的程序关闭再打开的时候变量肯定又恢复了,达不到“>>”的效果!
我现在是用的AU3调用dos命令来实现的,AU3有类似的函数吗?
发表于 2011-2-3 13:08:44 | 显示全部楼层
本帖最后由 mozha 于 2011-2-3 13:14 编辑

源于提问的智慧:
1:Run(@ComSpec & ' /c dir>d:\dir.txt',"", @SW_HIDE)

2:#include <Process.au3>
$rc = _RunDos("start Http://www.autoitx.com")
发表于 2011-2-3 15:37:47 | 显示全部楼层
本帖最后由 netegg 于 2011-2-3 15:39 编辑

不是我中文学的太差就是楼主的中文使用的过于高级,居然没看懂
如果是追加不是很简单吗 fileopen($file,1)
发表于 2011-2-3 16:43:22 | 显示全部楼层
留个脚印,备用
发表于 2011-2-3 20:19:51 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-2-3 20:35 编辑

回复 1# love5173

就是看你用什么模式打开文件,好好看帮助就可以明白.
0 = 只读模式(默认)
1 = 写入模式(附加数据到文件尾部)
2 = 写入模式(删除之前的内容)

DOS命令
echo 你好>>test.txt
au3这么写
$file = FileOpen("test.txt", 1);附加数据到文件尾部
FileWrite($file, "你好")
FileClose($file)
DOS命令
echo 你好>test.txt
au3这么写
$file = FileOpen("test.txt", 2);删除之前的内容
FileWrite($file, "你好")
FileClose($file)
DOS命令
echo 你好>>test.txt
echo 再见>>test.txt
au3这么写
$file = FileOpen("test.txt", 1);附加数据到文件尾部
FileWrite($file, "你好")
FileWrite($file, "再见")
FileClose($file)
 楼主| 发表于 2011-2-3 21:15:37 | 显示全部楼层
别笑话我好么,我知错了  我以后会好好看说明的
发表于 2011-2-3 22:46:21 | 显示全部楼层
回复 6# love5173

我没那个意思,请你别介意.
大家共同学习.
 楼主| 发表于 2011-2-5 16:40:22 | 显示全部楼层
李小龙,大哥,>> 有回车的作用自动换行的, 我用你教的结果都追尾了,而且看起来没我直接调用DOS来的语言简洁,你来解释
发表于 2011-2-5 17:41:42 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-2-5 17:58 编辑

回复 8# love5173

FileWrite函数没有自动添加换行的功能.
没有的功能只能自己添加.

换行我一直用@CRLF,知道这些你可以自己定义函数(Func).

我写了一个请你参考

用法:
$File = @ScriptDir & "\test.txt"
Dos_FileWrite($File, '>>', "你好");附加数据到文件尾部
Dos_FileWrite($File, '>', "再见");删除之前的内容

Func Dos_FileWrite($Dos_File, $Frag, $Dos_Text)
        If $Frag = '>>' Then
                $Frag = 1
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        ElseIf $Frag = '>' Then
                $Frag = 2
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        Else
                MsgBox(16, '警告', '输入方式错误!')
        EndIf
        FileClose($Dos_File)
EndFunc   ;==>Dos_FileWrite


这样写很像dos命令吧,呵呵
$File = @ScriptDir & "\test.txt"

echo("你好", '>>', $File)
echo("再见", '>>', $File)

Func echo($Dos_Text, $Frag, $Dos_File)
        If $Frag = '>>' Then
                $Frag = 1
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        ElseIf $Frag = '>' Then
                $Frag = 2
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        Else
                MsgBox(16, '警告', '输入方式错误!')
        EndIf
        FileClose($Dos_File)
EndFunc   ;==>echo
 楼主| 发表于 2011-2-5 18:13:33 | 显示全部楼层
您觉得把换行放在第二句的开始好呢 还是第一句的结束?
发表于 2011-2-5 18:50:06 | 显示全部楼层
回复 10# love5173

放在哪里都可以,看怎么写代码.
像我写的函数应该写在后面.
 楼主| 发表于 2011-2-5 18:56:48 | 显示全部楼层
帮我写个Access 的数据库脚本 最简单的就可以 我参考下语法什么的 英文我看不懂
发表于 2011-2-5 19:03:53 | 显示全部楼层
好多次看楼主的帖子,感受和3楼一样。
楼主真该多去看看那些智慧的提问帖。

比如这位:http://www.autoitx.com/forum.php ... hlight=%B4%F2%B0%FC

上图上代码,简单、明了、到位的描述,将自己的问题阐述得清清楚楚,这样便于他人能更快更准的帮你找出问题所在,而不是把时间都花在猜问题上了。

没别的意思,希望楼主莫见怪,还是那句话,指出你的不足,是希望你能更好,新年快乐。
发表于 2011-2-6 01:23:51 | 显示全部楼层
楼上的大哥,说得有道理
发表于 2011-2-6 23:35:02 | 显示全部楼层
lixiaolong  水木子 支持上面两位
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 14:35 , Processed in 0.080987 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表