VB FILECOPY 问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 21:54:41
If LCase(Right(Trim(Text2.Text), 4)) = ".xls" Then str = Left(Trim(Text2.Text), Len(Trim(Text2.Text)) - 4)
Dim Path As String
Path = IIf(Len(App.Path) > 3, App.Path & "\", App.Path)
Shell "cmd.exe /C copy /b " & Path & "ABC.exe + " & Path & "123.txt + " & Path & "Demo1.xls " & Path & ".EXE", 0
这样得到的EXE文件可以执行,而
Shell "cmd.exe /C copy /b " & Path & "ABC.exe + " & Path & "123.txt + " & Path & "Demo1.xls " & str & ".EXE", 0
得到的文件却说下标越界
而且程序文件要在C盘根目录下才可以得到EXE文件,其他目录下面却得不到
到不能使用的问题了是合并后的二进制文件占用空间大小不一样,但是我用同样的文件进行这个命令,只是最后得到的文件放在不同的地放却发现得到的文件占用空间不一样,为什么呀,怎么解决呢?
比如copy /b c:\ABC.EXE +C:\123.TXT+C:\DEMO1.XLS C:\111.EXE
和COPY /B C:\ABC.EXE +C:\123.TXT+C:\DEMO1.XLS C:\新建文件夹1\1.EXE得到的文件大小一样占用空间却不一样这是为什么怎么解决呀?
找到问题了,谢谢各位,由于我的C盘是FAT32,D盘是NTFS格式的,造成文件大小不一样所以不能

你跟本没必要用Shell 来调用 DOS 命令拷贝!!!

简单的事情,处理复杂了!!!

方法1:
dim shellCOmmand1 as string
dim shellCOmmand2 as string
Shellcommand1="copy /b " & Path & "ABC.exe + " & Path & "123.txt + " & Path & "Demo1.xls " & Path & ".EXE"

shell shellcommand1,0

Shellcommand2=" copy /b " & Path & "ABC.exe + " & Path & "123.txt + " & Path & "Demo1.xls " & str & ".EXE"

shell shellcommand2,0

CMD/C 这个指令,你只要运行COPY命令的时候,自动加上去了!

没必要的

另外:假定你的CMD。EXE文件不存在,或者中毒了,你的代码就无法工作了!!!
方法2
你用二进制的形式打开你的这些个文件,然后写到一个新的文件中去,就行了。 比调用 SHELL 简单多了,而且执行起来方便很多的。

shell

Path = IIf(Len(App.Path) > 3, App.Path & "\", App.Path)这句

Path = IIf(right(App.Path) ="\", App.Path & "\", App.Path)
我没有装VB,不能测试

Shell "cmd.exe /C copy /b """