2017-06-02 13 views
0

私は現在AutoITスクリプト用のフレームを作成しようとしていますが、これは非常に小さな変更で特定の数のファイルを保存するために使用しますそれらには基本的に何らかの何回かのようなものがあります:ファイルの内容と名前を特定の回数+1する方法

ユーザーはいくつのファイルを挿入しますか?

メモ帳が開いてFile1に書き込みます。

は自動的にメモ帳がファイル2を書き込みFILE1.TXT

として保存されます。

自動的にFile2.txtとして保存されます。

など。

私はこれをpywinautoで理解することができましたが、実際のプログラムに適用しようとしたときに私はそれを使いたいと思っていましたが、編集に必要な領域を特定できませんでした。だから今、私は私が絶対に経験がないているのAutoItでそれをしようとしています

これは私がこれまで持っているものです。これは、最初のファイルの

$NumVar = 0 
Run('Notepad') 
WinWait('Untitled - Notepad') 
While ($NumVar < 5) 
    ;Run('Notepad') 
    ;WinWait('Untitled - Notepad') 
    Send('File' & $NumVar) 

    Send('^s') 
    WinWaitActive("Save As") 
    Send("test" & $NumVar & ".txt") 
    Send("{ENTER}") 
    WinActivate("test" & $NumVar) 
    $NumVar = $NumVar + 1 

    ;WinWaitActive("test" & $NumVar & "- Notepad") 
WEnd 
($NumVar > 5) 

作品私は

のような何かを得るが、その後

"File0

fFFFiiiilllelee3e42s!SFile4" メモ帳に印刷

これについてのお手伝いがあれば幸いです。

+1

私はループなしで一度やってみて、それぞれのステップを踏むべきだと思います。例えば。あなたがする最初のことの一つはメモ帳を実行することです。その後、ループに入り、再びメモ帳を実行します。 –

+0

ファイルを作成するためのネイティブなAutoIt-Functionsの代わりにSendとRunを使用するのはなぜですか? 'FileWrite' /' FileRead'を見てくださいhttps://www.autoitscript.com/autoit3/docs/ – Yaerox

答えて

0

スクリプトが間違っていますが、詳細を発見し、簡単なデバッグ技術を使用して問題解決することができます:あなたは、各ステップは、上の代わりに、急速なちらつきの一つ一つを行って見ることができるので、Sleep()でスクリプトに

  • 入れ遅延を画面
  • _DebugOut()を使用してコメントを印刷します。どのステップが実行されているかわかります。

    • オープンメモ帳
    • タイプFile0ctrl+sを打つ:

    現在のスクリプトのロジックはOKではありません。 [名前を付けて保存]ダイアログが表示されます。

  • タイプtest0.txtと入力してください。ファイルは "test0.txt"に保存され、メモ帳のタイトルはファイル名に変わり、ファイルの内容はメモ帳に表示されます。
  • 今は物事が悪くなります。スクリプトは最初からループを開始します:テキストに追加されたFile1と入力します。
  • ヒットctrl+sは、[名前を付けて保存]ダイアログを強制しません。メモ帳はすでに "test0.txt"が編集されているので、 "test0.txt"は単に保存されます。File0File1
  • スクリプトは起動時に「別名保存」ダイアログを表示しますが、スクリプトは永遠に待ちます。
  • トレイアイコンからスタックスクリプトを削除することはできますが、代わりにスクリプトの2番目のインスタンスを起動して干渉を開始するようです。 2番目のインスタンスが「名前を付けて保存」ダイアログを開くと、両方のインスタンスがテキストを印刷して混乱します。

メモ帳の状態が間違っていると思われます。それが原因です。

重要な注意点:テキストエディタをファイル操作に直接使用することは、作業するのが最も簡単で信頼できる方法ではありません。はるかに便利なFileWrite()を調べてください。

関連する問題