急问win7下无法使用fileopen()创建文件的问题(已解决)
本帖最后由 potato0001 于 2011-9-5 12:36 编辑同样的代码,XP和2003下均正常
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", "") & "测试结果.txt",9)
但在win7下一点反应都没。。。。。。求解决方法,万分感谢!
PS:以管理员身份运行无效。 关了UAC试试 回复 1# potato0001
我这里在win7测试是没有问题的,没有反应也没有报错么? 什么反应都没,也没有产生新文件 回复 4# potato0001
#Include <Date.au3>
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", "") & "测试结果.txt",9)
MsgBox(0,"返回值",@error)
看看返回的@error 值是不是0?如果是-1说明有错误发生。 创建文件肯定是没问题的,楼主还是按2楼的想法看看权限的问题 本帖最后由 daiyu116 于 2011-8-10 18:18 编辑
没有调查就没有发言权,我在win7上测试了,肯定不是UAC权限的问题。
我今天特地找了一个日语win7测试,发现和LZ的现象有些类似,用5楼的代码测试,返回值也正常,是0,而不是-1.但是肯定是有问题。
于是我加了一条命令,看一下下面这条代码是不是有问题。
msgbox(0,"1",@ScriptDir & "\" & StringReplace(_NowDate() & "_" & _NowTime(), ":", ""))
结果返回的值如下:
但是在中文win7上看看返回的是什么值,如下:
知道windows文件命名规则的都知道,里面是不能包含类似 '\'等等字符的,如下:
再看一下帮助中对_NowDate的解释:按PC格式返回当前日期.我想就不用多说了吧。
因此,解决方式有两种:
1、修改 “控制面板-区域和语言-格式-日期和时间格式”中的短日期 格式为不包含 \ 等字符的格式,如 yyyy-MM-dd或者yyyy.M.d等等。
2、修改代码如下:
#Include <Date.au3>
$txt = FileOpen(@ScriptDir & "\" & StringReplace(_NowDate(), "/", "-") & "_" & StringReplace( _NowTime(), ":", "") & "测试结果.txt",9)
MsgBox(0,"1",@error&@ScriptDir & "\" & StringReplace(_NowDate(), "/", "-") & "_" & StringReplace( _NowTime(), ":", ""))
针对LZ的情况,可能不一定是日文win7环境,但是有可能是文件名称格式的问题。因为第一种方法涉及到改动系统设置了,所以推荐用第二种方式测试一下吧。 回复 7# daiyu116
佩服,你的思路令人耳目一新 回复 7# daiyu116
非常感谢,确实没想到是文件名方面的问题,光考虑权限了。等我回家再试试看。 7楼高人哈,我曾经也在CMD下纠结了好久,同样因为日期时间分隔符问题 真还没有注意这个细节问题
{:face (356):}
我命名文件都是下划线 原来如此。 回复 7# daiyu116
佩服,思路清晰 刚发现这个帖子还在,之前忘记回了
确实是时间格式问题,感谢daiyu大大 正要使用这个,太用用了。谢谢分享
页:
[1]
2