0

ファイル名の長さが異なる 2 つのファイル (.zpl) をコピーするバッチ ファイルを (Windows XP Pro 経由で) 作成しようとしています。ZPL ファイルは、ラベル プリンター コードに関連しています。ファイル名は次のとおりです。

FillXferDataPBHAMFill###########.zpl
FillFormatsPBHAMFill############.zpl

ポンド記号は、印刷する特定のラベル/ジョブに関連付けられた番号を表します。これらの番号はジョブごとに同じです。ジョブごとに数字の長さが異なり、常に変化します。これらを取得しようとしているディレクトリには、複数の場所からの ZPL ファイルが含まれていますが、BHAM ファイルだけが必要です。

バッチのコピー元: \Server\C:\Directory1\Directory2\Directory3
コピー先: \Server\Directory1\Directory2

これがさらに複雑になるかどうかはわかりませんが、バッチ ファイルは 3 台目のマシンから実行されます。さらに、毎回すべてのファイルをコピーする必要はありません。新しい印刷ジョブが送信されるたびに、スーパーバイザーはバッチを実行して、最後の X 時間内に新しい印刷ジョブをコピーします。X は分です。これが私がこれまでに持っているものです...

@echo off
SETLOCAL enableExtensions enableDelayedExpansion

SET sourceDir=Server\C:\Directory1\Directory2\Directory3
SET targetDir=Server\Directory1\Directory2

FOR %%a (FillFormatsPBHAM*.bat) DO (
SET "filename=%%a"
SET "folder=%targetDir%"
XCOPY "%%a" !folder!
)

FOR %%b (FillXferDataPBHAM*.bat) DO (
SET "filename=%%b"
SET "folder=%targetDir%"
XCOPY "%%b" !folder!
)

:END

長い投稿で申し訳ありません。できるだけ徹底したいだけです。私はこれをその場で学んでいるので、私の側には無知です。どんな助けでも前もってありがとう!!

レビューされた StackOverFlow マテリアル: Reference1Reference2 -- この 1 週間、あらゆる場所を調べましたが、これまでで最も役に立ったのはこれらの 2 つです。

4

1 に答える 1

1

BAT スクリプトを修正または改善する方法がいくつかあります。

  1. FORコマンド構文は次のとおりです。FOR %%a IN (*.bat) DO (

  2. sourcedir 変数が設定されていますがServer\C:\Directory1\Directory2\Directory3、これは Windows の正しいパスではありません。

  3. 初期化しますが、FORループでもコピーコマンドでも %sourcedir% 変数を使用しません

    コマンドで現在のドライブとディレクトリを変更するか、pushd %sourcedir%コマンドで指定する必要がありFORます。

  4. FOR ループは、決して使用されない %filename% 変数を割り当てます。この割り当てをスキップできます。

  5. FOR ループは %folder% 変数を割り当てます。この変数はコピー コマンドでのみ使用されます。この割り当てをスキップして、単に %targetdir% を使用できます。

  6. ただし、すべてのファイルをあるフォルダーから別のフォルダーにコピーするだけで、すべてのファイルを繰り返し処理する必要はありません。正しくコピーするだけでかまいません。

それでは、この簡単なスクリプトを見て始めましょう..

SET sourceDir=\\servername\sharename\Directory1\Directory2\Directory3
SET targetDir=\\anotherserver\sharename\Directory1\Directory2
xcopy %sourceDir%\FillFormatsPBHAM*.bat %targetDir%
xcopy %sourceDir%\FillXferDataPBHAM*.bat  %targetDir%
于 2012-07-29T07:36:14.477 に答える