質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

433閲覧

ファイルを200個単位でZIPアーカイブにする繰り返し作業を正確にやる方法

asagao

総合スコア15

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2022/06/25 13:18

編集2022/06/25 13:19

Yから始まるショッピングモールに画像をFTPアップロードをすることが最終目標になっています。
現状作業フォルダに9000ファイル(jpg/png/gif)が待機しており目視、GUI操作で
何度もやるのは時間効率の面で劣っている点、ファイルの漏れ(404 not found)、
アップロード忘れ、リネーム忘れなどヒューマンエラーが予想され避けたいです。

Yから始まるショッピングモールに画像をFTPで上げるときの仕様は以下になっております。

  • アーカイブはlib_img.zipという規定ファイル名であること
  • アーカイブ直下に画像ファイルがあること
  • アーカイブのファイルサイズは上限50MB →今回は余裕をもって200ファイルとしました
  • 上書き防止のためアップロード後60秒程度の待機時間を設けたい

自分が考えた流れ

  1. 作業フォルダに「圧縮作業フォルダ」「圧縮作業フォルダ\処理済画像」作成しておく
  2. 上限200個の画像を「圧縮作業フォルダ」に移動させる(できない。どうやってやればいいでしょうか?)
  3. その中に移動しファイルリストを作成してそれをもとにlib_img.zipを作成(たぶんできる)
  4. FTPコマンドでアップロード(たぶんできる)
  5. 上限200個の画像を「圧縮作業フォルダ\処理済画像」に移動させる(たぶんできる)
  6. lib_img.zipを消去(たぶんできる)

上記2-6繰り返し

bat

1move, cd, del 2dir /b *.jpg *.gif *.png > imagefilelist.txt 37za a lib_img.zip @imagefilelist.txt 4ftp -n < command.txt

自分で自己解決しようした際に上記方法は思いつきました。

解決する知恵を授けていただけないでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

上限200個の画像を「圧縮作業フォルダ」に移動させる

powershell -c "ls *.png | select -First 【移動数】 | %{ mv $_ \"【移動先】\" }"
のようなコマンドで行えます。
PowerShellのコマンドをバッチから呼び出すことで実現しています。

動作サンプル:

bat

1copy nul test01.png 2copy nul test02.png 3copy nul test03.png 4copy nul test04.png 5copy nul test05.png 6copy nul test06.png 7copy nul test07.png 8copy nul test08.png 9copy nul test09.png 10copy nul test10.png 11 12mkdir move_target 13 14powershell -c "ls *.png | select -First 3 | %{ mv $_ \".\move_target\" }"

投稿2022/06/25 13:52

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asagao

2022/06/25 17:52

ご回答ありがとうございます。 結果から申しますとお陰様で稼働しております。 今夜中に正確に終わりそうです。 1. バッチファイル化するとき頂いたコードのパーセント記号をエスケープ%%することを忘れていた 2. FTPコマンドによる通信をWindowsファイアウォールから除外してあげることを忘れていた 3. 2002年の記事を参考にしていたためFTPコマンドの使い方が古かった。現行はftp -s:hoge.txt 上記問題を解決しましたら自分が考えた流れ部分が安定稼働しました。 大変ありがとうございました。感謝申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問