• ベストアンサー

自動化したい

ファイル名の末尾に「_X」を追加し、それを特定のフォルダにコピーする という作業を自動化したいです。 フリーソフトをつかってみましたが、できればバッチファイルのように 軽く、素早くできるものがいいと思い、自分で調べて、つくってみようとしてみましたが、 私には難しく理解できず、全くできませんでした。 どなたかバッチファイルを作成していただけないでしょうか? ファイルをバッチファイルにドラッグ&ドロップすると上記の作業が行われるようにしたいです。 また、元のファイルに上書きせず、新たにファイルを作成したいです。 使用OSはWindowsXPです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

No.4 です。 ちょっと記憶を整理したら、複数ファイルの対応もできました。 これだと、複数のファイルをドロップしても(ただ、バッチファイルの制限は受けるので9個か10個くらいまでかも)対応できます。 ---- ここから ---------- :LOOP if "%1" == "" EXIT copy %1 c:\temp\%~n1_x%~x1 SHIFT GOTO LOOP ---- ここまで ---------

oneenc
質問者

補足

ありがとうございます! ただ、追加で書いてくださった 複数ファイル対応のものが動きません。 わからないなりにいろいろいじってみたのですが ダメでした。 とりあえず、これをコピーして、.batで保存して C¥tempをつくって試してみましたがそれでも動きませんでした。

その他の回答 (7)

回答No.8

こっちのほうがチェックが楽かも というわけで、たびたびで申し訳ありませんが、 ----- ここから :LOOP if "%1" == "" GOTO XEND copy %1 c:\temp\%~n1_x%~x1 SHIFT GOTO LOOP :XEND PAUSE ----- ここまで というバッチファイルで、複数のファイルをドロップすると、最後に、「続けるには何かキーを押してください」と出て停止するので、何が起こっているか(必要な回数コピーしようとしているかとか)わかるかもしれません。

oneenc
質問者

お礼

解決しました! ありがとうございました!

oneenc
質問者

補足

ありがとうございました 何度もすいません。 いろいろやってみたところ、 ファイル名やパスに空白が入っていると 失敗するみたいなのですが、 これを防ぐ方法はないのでしょうか?

回答No.7

複数バージョンでも動くはずではありますが。 確認してみましょう。 まず、複数バージョンをちょっと変更します。 ---- ここから :LOOP if "%1" == "" GOTO XEND copy %1 c:\temp\%~n1_x%~x1 SHIFT GOTO LOOP :XEND ---- ここまで。 この部分を、c:\test.bat という名前で保存してください。 (名前がわかれば何でもいいです) 次に、「コマンドプロンプト」を立ち上げます。 コマンドプロンプトから、 cd \ とすれば、c:\ に移動できます。 ここで、 test a.a b.b. c.c と入力します(ここで、a.a や b.b. や c.c は存在していないと思いますが、それでいいです) こんな感じ ※ファイルが存在していないので、「見つかりません」というエラーになっていますが、こんな一連の表示が出てくるはずです。 これを見比べてもらって何が起こっているか考えるということで。 C:\>test a.a b.b c.c C:\>if "a.a" == "" GOTO XEND C:\>copy a.a c:\temp\a_x.a 指定されたファイルが見つかりません。 C:\>SHIFT C:\>GOTO LOOP C:\>if "b.b" == "" GOTO XEND C:\>copy b.b c:\temp\b_x.b 指定されたファイルが見つかりません。 C:\>SHIFT C:\>GOTO LOOP C:\>if "c.c" == "" GOTO XEND C:\>copy c.c c:\temp\c_x.c 指定されたファイルが見つかりません。 C:\>SHIFT C:\>GOTO LOOP C:\>if "" == "" GOTO XEND C:\>

  • layy
  • ベストアンサー率23% (292/1222)
回答No.6

バッチファイルで、FINDと引数シフトを繰り返しで10個と言わずできたはず。 とあるフォルダにX付与したいファイルを集めて名前変更してから所定のフォルダにコピーか。 VBScriptはダメか。

回答No.4

バッチファイルそのものの作り方はわかるということだと判断して、 copy %1 c:\temp\%~n1_x%~x1 この1行だけです。 中程にある、 c:\temp\ がコピーする先のフォルダ名になります。(ここは実情に合わせて直してください) %~n1 のあとにある、_x が、ファイル名の最後に追加する文字になります。 通常、%1 で引数がとれますが、これがファイル名の場合、 %~n1 は、ファイル名(拡張子なし) %~x1 は、拡張子(. つき) になります。 また、上記のものは、引数ひとつしか対象にしていませんので、ドロップできるファイルは「1個」です。 たとえば、test.exe をドロップすると、 copy test.exe c:\temp\test_x.exe と展開されます。

  • a_ka_
  • ベストアンサー率16% (1/6)
回答No.3

拡張子が決まっている場合のみ有効ですが。。。 拡張子が.txtならばこんな感じですかね? 出力先はc:workとなっているので任意の場所に変更してください。 Option Explicit Const ForReading = 1 Const ForWriting = 2 Const ForQppending = 8 Dim objFileSys Dim objShell Dim strCopyFrom Dim strCopyTo Dim strFileName Dim objArgs, strPath Set objArgs = WScript.Arguments dim sInputFilename sInputFilename = objArgs(0) Set objFileSys = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") strFileName = objFileSys.GetFileName(sInputFilename) strCopyFrom = sInputFilename strCopyTo = objFileSys.BuildPath("C:\work",replace(strFileName,".txt","_x.txt")) objFileSys.CopyFile strCopyFrom,strCopyTo strCopyFrom = sInputFilename strCopyTo = objFileSys.BuildPath("C:\work",replace(strFileName,".txt","_x.txt")) objFileSys.CopyFile strCopyFrom,strCopyTo Set objFileSys = Nothing Set objShell = Nothing 一応動きました。 replaceって使えるんですねぇ。

回答No.2

ファイル名の末尾って、でも拡張子の前ですよね。 そういう細かい事、バッチでやるの難しいんじゃないのかな? VBかC/C++で、自作しちゃえば?

oneenc
質問者

補足

そうなんですか・・ プログラミングに関してはまったくの素人で、 自作は難しいです・・・

回答No.1
oneenc
質問者

補足

ありがとうございます。 ただ、フリーソフトはいろいろ見ましたが、 任意の文字列の追加はできなかったり、 元ファイルがリネームされてしまったり、 できたとしても、かなり多機能で、変換までに 手間がかかるものしか見つけられなかったので 今回質問させていただきました。

関連するQ&A

  • ネットワーク上の共有フォルダへのドラッグ

    ネットワークの共有フォルダへファイルをドラッグアンドドロップするとファイルがコピーされるはずなのですが、なぜかファイルが移動してしまいます。なぜそうなったのか分からず困っています。 以下のような環境と目的で使用しています。 ▼ドメインネットワークに30台のPCを接続。PCはWindowsXPが6台とWindows7が24台の構成。 ▼共有フォルダは4台のWindowsXP PC内のD:ドライブに作成。セキュリティeveryoneに読み取りと書き込みを許可。 ▼Windows7 PC側では、[ネットワークの場所を追加]の手順により共有フォルダへアクセスするためのショートカットを作成し、このショートカッ トをデスクトップに置いてます。 ▽Windows7 PC側からWindowsXPの共有フォルダを開きWordやExcelのテンプレートファイルを自分のドキュメントフォルダに「コピー」します。この場合は、ファイルのアイコンをドラッグアンドドロップすることで「コピー」でき、これは問題ありません。 ▽コピーしたファイル内容に修正を加えてからWindowsXPの共有フォルダに「コピー」で戻す作業をしたいのでが、WindowsXPの共有フォルダにファイルアイコンをドラッグアンドドロップするとファイルが 「移動」 してしまうのです。困りました。 ○以前はWindowsXP だけで上記の作業をしており、その時は問題なくファイルをドラッグアンドドロップにより双方向ともに「コピー」できていました。原因はWindows7側と思うのですが、どこが間違ったのか?が解りません。どなたかご教示をよろしくお願いします。

  • D&Dでファイルをコピーをしたい

    業務上、ダブルクリックでファイルをコピーするバッチファイルを作成して使用しています。 コピー元とコピー先は毎回同じですが、ファイル数やファイル名は毎回変わります。 したがって、バッチファイルの中身を毎回書き換えています。 バッチファイルの記述をドラッグ&ドロップに対応するような構文にできれば、 ファイル名が変わってもドラッグ&ドロップでファイルがコピーできて便利だなと思ったのですが、 それは可能なのでしょうか。 可能であれば、記述をお教えいただけますでしょうか。 ネットを検索しましたが、VBでドラッグ&ドロップを実現する記述がたくさんありますが、 敷居が高くて理解できませんでしたし、 コマンドプロンプトのコマンドも探しましたが、見つかりませんでした。 set inputとset outputで特定のフォルダ内のファイルをバッチで参照して連続してコピーしてくれないかなと思ったのですが、 現在試してみています。

  • ファイル名の末尾に文字を追加したい

    複数のファイルの末尾に、特定の文字を一気に追加したいです。 ただ、元のファイルは保持したまま、文字が追加されたファイルを新たに作成したいです。 いくつかフリーウェアを探しましたが、元のファイルに上書きするものしかなく、 現在、ひとつひとつ手作業で複製したうえで、そのフリーウェアで変換しています。 どなたか、この作業ができるバッチファイルをつくってもらえないでしょうか? もしくはこの作業ができるフリーウェアをご存じないでしょうか? 追加する文字は、常におなじものです。 よろしくお願いします。

  • バッチファイルを作りたい。

    こんにちは いまある作業をしていて、どうにか自動化できないかと調べていたら、 バッチファイルというものがあると知りました。 バッチファイルに、ファイルをドロップすると、そのファイルの名前のフォルダが作成され、 そのフォルダの中に、B,Cの2つのフォルダ、さらにフォルダBのなかに B1、B2、B3、B4の4つのフォルダが作成される。 というバッチファイルを作りたいです。 また、一度に複数のファイルをドロップしても、動くようにしたいです。 どなたか詳しい方、教えてください。 よろしくお願いします。

  • システム構築について

    今現在、会社でシステムの基本設計をしております。 社内で使用するファイルを一元管理するものなのですが、 今回はWEBシステムを考えておりまして、 でドラッグ&ドロップでファイルをシステムに登録できるようにしなければ ならないのです。しかし、ドラッグ&ドロップでどのようにシステムに登録 できるのかわかりません。ドラッグ&ドロップする事により、そのファイルの コピーを作成し、そのコピーをフォルダに自動格納させるシステムだそうです。 またそのフォルダも自動作成(作成先指定)させるそうです。 どうすればそのような機能が作れるのか教えて頂けますか?

  • バッチファイル、ドラッグ&ドロップしたファイルだけ

    [ファイルを名前を変えて複数個コピーを作成、を一括で] http://okwave.jp/qa/q7808481.html という質問をしていたのですが、 「wordのファイルを、ファイル名を変えて複数コピーするためのフリーソフ 」 http://okwave.jp/qa/q5651889.html という質問を見つけ、参考にしてバッチを編集したのですが、使い勝手が悪いです。 copy *.* 1.* copy *.* 2.* copy *.* 3.* copy *.* 4.* copy *.* 5.* copy *.* 6.* copy *.* 7.* copy *.* 8.* というバッチを作ったのですが、 このことにより、コピーを複数作成したいファイルをバッチファイルのアイコンにドラッグ&ドロップすることにより、カレントディレクトリにコピーが8個作成できるようになったのですが、 ドラッグ&ドロップしたファイル以外に、同一ディレクトリにあるファイルすべてのファイルのコピーが作成されてしまいます。 コピーするのをドラッグ&ドロップしたものだけにする方法があれば教えてください。

  • 同名フォルダを作成し、そのフォルダに移動するバッチ

    自宅で 「Files 2 Folder」 http://www.gigafree.net/utility/move/files2folder.html というフリーソフトを使って、 作成したファイルと同名のフォルダを作成し、 その作成されたフォルダ内にファイル移動させてファイルの管理をしております。 会社でもこのソフトを使えればいいのですが、 業務に必要不可欠でないフリーソフトをインストールすることを許されていないので、 一つ一つ手作業でフォルダを作成し、そのフォルダにファイルを放り込んでいます。 しかし、 バッチというものを作れば、 windowsの基本機能で、 あるアイコンにファイルをまとめてドラッグアンドドロップしたら、 各ファイルと同名のフォルダをそれぞれ作成し、その作成されたフォルダ内に移動させるようには出来るのでしょうか? もし可能でしたらやり方を教えてください。 尚、使用しているPCのOSはWindows 7 Professionalです。

  • バッチファイルの作成 part2

    昨日に引き続き、バッチファイルについて質問させて頂きます。 参考書やWebサイトを参照して、次の手順を行う方法が解りませんでした・・・ -----実行したい事----- 1.バッチファイルの手順で、C:\abcフォルダ内のdef.txtをフリーソフトにドラッグ&ドロップをする。 2.フリーソフトの「開始」ボタンを押す。 3.フリーソフトの「終了」ボタンを押す。 4.フリーソフトで作業を行ったgh.txtを開く。 5.C;\abcフォルダのウィンドウを開く。(フォルダをダブルクリックで開いた時と同じ事をしたいのです。) -----終了----- 1の手順でフリーソフトを起動すると、コマンドプロンプトのような画面ではなくて、ドラッグ&ドロップをする画面と設定内容が選べる画面になっています。def.txtをその画面にドラッグ&ドロップをする手順でつまづいております。 また、2.3はフリーソフト上の操作をバッチファイルで表現する方法もわかりませんでした。4も同じです。 本当に行き詰ってしまっており、再度ご教授の程、宜しく御願い致します。

  • PDFファイルの結合を自動化したい

    文書をスキャンニングしたPDFファイルが多くあります。このPDFファイルをAdobeAcrobat5.0で結合しています。 「画像」という親フォルダの中に001,002・・・といった子フォルダがあり、その中にスキャンニングしたPDFファイルが入っています。現状では、Acrobat5.0で先頭のファイルを開き、残りのファイルをドラッグ&ドロップして結合しています(手動)。この作業を自動化したいのです。 使用OS:WinXP Pro AdobeAcrobat5.0 があります。 イラストレータ、フォトショップもあります。 データはパソコン内のHDではなくネットワーク上のサーバーにあります。 ファイル名は数字になっていて昇順に並び替え一冊に結合することが条件。(フォルダ単位で一冊に結合します) 設定をしておき夜間に自動的に作業するのが理想。(バッチ処理のように) この条件でPDFファイルの結合を自動化できるでしょうか?(AdobeAcrobat5.0以外のソフトが必要な場合フリーソフトのみ使用する)

  • フォルダを自動作成するばっちについて

    初めての投稿になります。 OKWaveで過去の記事を参考に、フォルダを自動作成するバッチを 作ったのですが、 同名ファイルを作ろうとすると、エラーも何も表示されませんが、 スルーされてしまうみたいで、フォルダ自体も作成されず、上書きもされません。 同じファイルに自動で連番を付けるなどの回避策など何かありませんでしょうか。 例、テスト   テスト01   テスト02       etc等 バッチ内容が以下になります。 set /p USER_INPUT=フォルダ名を入れてください。: mkdir "%USER_INPUT%" ご教授よろしくお願いいたします。