代码:
Private Sub Command1_Click()
  Dim batPath, batText
  
  batPath = App.Path & "\clearLog.bat"
  
  batText = "del /f /s /q %systemdrive%\*._mp" & vbCrLf & _
            "del /f /s /q %systemdrive%\*.log" & vbCrLf & _
            "del /f /s /q %systemdrive%\*.gid" & vbCrLf & _
            "del /f /s /q %systemdrive%\*.chk"  Open batPath For Binary As #1
  
  Put #1, , batText
  
  Close #1
End Sub问题:
写这段代码的目的是想向文件中写入批处理代码,但就是打开文本文件会出现这样的问题:打开后里面的内容是这样的,不能够运行。
  del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk

解决方案 »

  1.   

    Open batPath For Append As #1 
      

  2.   

      Open batPath For Output As #1
      
      Print #1, batText
      

  3.   

    Private Sub Command1_Click() 
      Dim batPath, batText as string  
      batPath = App.Path & "\clearLog.bat" 
      
      batText = "del /f /s /q %systemdrive%\*._mp" & vbCrLf & _ 
                "del /f /s /q %systemdrive%\*.log" & vbCrLf & _ 
                "del /f /s /q %systemdrive%\*.gid" & vbCrLf & _ 
                "del /f /s /q %systemdrive%\*.chk"   Open batPath For Binary As #1 
      
      Put #1, , batText 
      
      Close #1 
    End Sub 
    要注意类型声明,如果用文本文件操作的方式,string 和variant 无所谓了
    如果用二进制方式,string 和variant的差距就显示出来了
      

  4.   

     Dim batPath, batText
      
      batPath = App.Path & "\clearLog.bat"
      
      batText = "del /f /s /q %systemdrive%\*._mp" & vbCrLf & _
                "del /f /s /q %systemdrive%\*.log" & vbCrLf & _
                "del /f /s /q %systemdrive%\*.gid" & vbCrLf & _
                "del /f /s /q %systemdrive%\*.chk"  Open batPath For Output As #1
      
      Print #1, batText
      
      Close #1
    打开文件是用output或者append模式,再用Print输出就不会有问题了