web-dev-qa-db-ja.com

autoitでバッチファイルを作成する

私は自分のファイルをチェックしました

MsgBox($MB_SYSTEMMODAL, "", "Contents of the file:" & @CRLF & $sFileRead)

だから私はファイルを正常に作成したことを知っています

しかし、ジャンク.batファイルに移動して.batに変更したい場合(他の人はおそらくそれを行うためのより良い方法を持っています)、エラーが発生します。

$CMD = "move "$sFilePath" " & $jointpath & @CRLF
RunWait(@ComSpec & " /c " & $CMD)

私は得る

error: syntax error

これが全体の機能です:

Func makeJointBat()
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)
    FileWrite($sFilePath, "you don't need to know what i wrote there")
    Local $hFileOpen = FileOpen($sFilePath, $FO_READ)
    Local $sFileRead = FileRead($hFileOpen)
    FileClose($hFileOpen)
    $CMD = "move "$sFilePath" " & $jointpath & @CRLF
    RunWait(@ComSpec & " /c " & $CMD)
EndFunc   ;==>makeJointBat

3

問題は、ファイルを2回開いているように見えることである可能性があります。1回はファイルを作成するとき、もう1回はファイルを読み取るときです。

ただし、閉じるのは1回だけです。

FileCloseFileWriteの間にFileOpenを追加すると、問題が解決する場合があります。

3
harrymc