0

私はバッチファイルを初めて使用しますが、徹底的に検索して同様のテーマのトピックを見つけましたが、正確に必要なものはカバーしていません.

バック ストーリー: 保存すると .PDF と .xlsm の 2 つのファイルが生成される Excel ファイルがあります。これらのファイルは「To-Process」フォルダーに保存されます。

これらは、次の命名規則に従って命名されます: 会社名 - 日付、たとえば「Daves Plumbing - 01-08-13.xlsm」「Daves Plumbing - 01-08-13.pdf」

処理: 週に 1 回、これらを会社名ごとに個別に名前を付けたフォルダーに手動で移動します。例: C:/documents/sales/excel/daves plumbing/

会社名のスペースが役に立たないことは理解していますが、うまくいけば、区切り記号として - を使用できますか?

最終的に、フォルダー内のファイルをステップ実行し、会社名を読み取り、名前と拡張子に基づいて各ファイルを関連フォルダーに移動することにより、上記の処理を自動化するバッチ ファイルを作成しようとしています。

処理することを決定した時点で、フォルダー内に一度に 50 個以上のファイルを保持できます。

これに関するヘルプは大歓迎です。これが実現可能かどうかを確認するのに十分な情報を提供できたことを願っています。

どうもありがとう、アッシュ

ps補足として、PDFファイルを移動する前に電子メールの添付ファイルとして送信することを組み込むことができなかったと思いますか? たとえば、バッチ ファイルを実行し、事前に定義された電子メール アドレスに電子メールで PDF を送信し、「pdf」と「xlsm」の両方を関連するフォルダに移動します。これは重要ではなく、単にバッチ処理の機能に興味があるだけです。

4

1 に答える 1

2

別の宛先フォルダーを使用するように編集されました。-同じフォルダーで使用する場合は、バッチ ファイル名にa を使用しないでください。

これを試して。ファイル名の最初の - を区切り文字として使用し、スペースである最後の文字を削除し、必要かどうかに応じてディレクトリを作成し、ファイルを適切なフォルダーに移動します。

! を含むファイル名 % が問題になる可能性があります。

@echo off
cd /d "c:\To-Process"
setlocal enabledelayedexpansion
for %%a in (*-*.*) do (
   for /f "delims=-" %%b in ("%%a") do (
     set "f=%%b"
       if /i "%%~xa"==".pdf" (
         md "C:/documents/sales/pdf/!f:~0,-1!" 2>nul
         move "%%a" "C:/documents/sales/pdf/!f:~0,-1!" >nul
       )
       if /i "%%~xa"==".xlsm" (
         md "C:/documents/sales/excel/!f:~0,-1!" 2>nul
         move "%%a" "C:/documents/sales/excel/!f:~0,-1!" >nul
       )
   )
)

添付ファイル付きの電子メールを送信するためのバッチ/VBS スクリプトがあります。
Google で検索するか、 または を使用しBlatますSendmail

于 2013-08-02T12:44:12.283 に答える