• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドプロンプトで同名ファイルをチェック)

コマンドプロンプトで同名ファイルをチェック

luka3の回答

  • ベストアンサー
  • luka3
  • ベストアンサー率74% (298/400)
回答No.5

やりたいことがようやくわかりました。 こちらの意図としては、「転送.bat ABCD-120306.txt」で実行するという形でしたので、改めて書き直しました。 cd C:\データ転送 for /f %%f in ('dir /b *-*.txt') do ( for /f "delims=- tokens=1" %%i in ("%%f") do ( for /f %%a in ('dir /b %%i-*.txt^|find /c /v ""') do ( if not "%%a"=="1" ( echo %%i のファイルが2つ以上あります dir /b %%i-*.txt goto :EOF ) ) ) ) for /f %%a in ('dir /b *-*.txt^|find /c /v ""') do ( if "%%a"=="0" ( echo エラー !! "A-"で始まる転送ファイルを用意して下さい!! goto :EOF ) ) echo 正常な処理をする 簡単に解説しますと、 2行目で *-*.txt のリストを取得し、3行目でファイル名を-の前後で分解、 4行目でABCD-*.txtの個数をカウントし2つ以上ならメッセージと一覧を表示して終了、 10行目でファイルが1つもない場合を確認し、OKなら15行目で正常な処理をする、 となります。 A-日付txt の他に B-日付txt C-日付txt もあって、それぞれ1つの場合も対応できるようにしていますが余計なお世話だったかな? A-日付txt のみでいいならもっと単純で cd C:\データ転送 for /f %%a in ('dir /b A-*.txt^|find /c /v ""') do ( if not "%%a"=="1" ( echo Aのファイルが2つ以上あります dir /b A-*.txt goto :EOF ) if "%%a"=="0" ( echo エラー !! "A-"で始まる転送ファイルを用意して下さい!! goto :EOF ) ) echo 正常な処理 でいいと思います。

yakkun2338
質問者

お礼

luka3さん、何度も何度もご対応ありがとうございます! ご教授いただきましたロジックで実現しました!!(涙) 本当に、本当にご丁寧に何度もご対応いただきまして誠にありがとうございました!! またA-日付txt B-日付txt C-日付txtの対応パターンまでご配慮いただきまして本当にありがとうございます。将来的な運用を考えますと、こちらの制御が必要になりそうですので、本当に助かりました。 超初心者の私に対して何度もご丁寧にご対応いただきましたluka3さん本当にありがとうございました! 私も勉強します! ありがとうございました。

関連するQ&A

  • コマンドプロンプト copyができません

    こんにちわ。 コマンドプロンプトのcopyコマンドについて質問させていただきます。 下記(1)~(4)処理内容のバッチファイルを作成しました。 デスクトップにある転送データ.txtを(2)、(3)、(4)の各workフォルダへコピーする処理です. (2)、(3)には正常にコピーされますが、なぜか(4)だけコピーされません。 (1)cd C:\Documents and Settings\XXX\デスクトップ (2)copy 転送データ.txt D:\work (3)copy 転送データ.txt C:\work (4)copy 転送データ.txt C:\Documents and Settings\XXX\デスクトップ\work どなたかご教授いただけますでしょうか? 環境 WindowsXP SP3

  • コマンドプロンプトでバッチをつくりたいです

    こんにちは。コマンドプロンプト初心者です。 一通り調べたのですが諸事情により時間がないため、 ご存知の方、どうが教えてください。 ファイルをある特定のフォルダ下にコピーするのですが、 パラメータによってコピー元のファイルを変えたいです。 引数を渡すことができません。 ---------------------------------------------- 【コード】 IF %1%=="" GOTO ERROR IF %1%==1 GOTO 処理1 IF %1%==2 GOTO 処理2 :処理1 CD C:処理1 COPY C:処理1\parm.txt C:コピー先フォルダ :処理2 CD C:処理2 COPY C:処理2\parm.txt C:コピー先フォルダ :ERROR ---------------------------------------------- 実は、一番やりたい事は、バッチファイル起動時に ダイアログボックスを表示し、そこにパラメータを入れて 渡すことができたら最高なのですが。 よろしくお願いいたします。

  • コマンドプロンプトでファイル名変更

    コマンドプロンプトを使って C:\test.txt というファイルを今日の日付、例えば2005年3月25日だったら、 C:\20050325.txt に名前を変更するにはどのように記述したらよいでしょうか?

  • コマンドプロンプトで簡単なファイルの読み込み

    ファイルAの場所 C:\file.txt ファイルBの場所 D:\file.txt それぞれのファイルには一行の文字が書かれています。 バッチファイルを使って、この二つのファイルを読み込み、内容が同じであれば、"same"をecho、そうでなければファイルAをファイルBに上書きするというバッチを作りたいのですが、コマンドプロンプトは使ったことがないので、よくわかりません。 調べてみましたが、for /fを使うのでしょうか?それぞれのファイルは一行しか文字を含まないので、もっと簡単にできそうな気もするんですけどどうなんでしょう。

  • コマンドプロンプトでわからないことがあります

    例えばtxtファイルをドロップするとある動作をするバッチファイルAがあります。 特定のアドレスにあるtxtをドロップせずにAの操作を実行出来るバッチファイルBを、 Aのバッチを呼び出す形で作りたいです。 パッチファイルBを下のような感じで書いてみました。 ---------------------------------------- set BAT=Aのbatファイルのパス set TXT=C:\*.txt call %BAT% %TXT% ---------------------------------------- これでC直下にある全てtxtはAのバッチファイルである動作をするだろうと思ったのですが、 Aバッチファイルには『C:\*.txt』とそのまま読み込まれてしまいました。 *がワイルドカードとして使われていない感じです。 なぜでしょう?どうしたらいいでしょうか。

  • バッチファイルについて質問です

    フォルダ内にA、B、Cと言ったテキストファイルがあります。 Aファイルだったら、日付-A.txtといったファイルのリネーム処理を実施するにはどのように記載すればいいのでしょうか? ※現在、ファイルのリネーム、日付を取得するところまで出来ています。 宜しくお願いします。

  • コマンドプロンプトでのファイル操作について

    コマンドプロンプトでのファイル操作について、ご存知のかたどうか教えてください。 a.txt b.txtという2つのファイルがあるとします。 <a.txtの内容> 1111 2222 3333 <b.txtの内容> aaaa bbbb cccc 上記の2つのファイルを読み取りc.txtというファイルへ以下のように 出力したいのですが、コマンドプロンプト(batでも問題ありません) にてできるのでしょうか? <c.txtの内容> 1111,aaaa 2222,bbbb 3333,cccc ご教授のほど、宜しくお願いします。

  • エクセル:マクロでの同名ファイル検索

    お世話になります。 あるフォルダの中に、たくさんフォルダが入っています。 子フォルダのファイルを全て親フォルダに移すのですが、同名ファイルがある可能性があります。 同名ファイルは枝番をつけるなどして処理するのですが、あらかじめ同名ファイルがあるかどうかを調べたいのです。 親フォルダの中にエクセルを入れておき、マクロの実行の結果、エクセルのシートに同名ファイルの情報を表示できればと思っています。 例)もし同名ファイルがあった場合、 まずセルA1にファイル名、B1に拡張子を表示する。123.xlsの場合 A1に123 B1に.xls そしてそのファイルが入っているフォルダ名をB2以降のB列に表示する。 3つのフォルダにA1のファイル名のデータがあれば、B2,B3,B4にそのフォルダ名が表示される。 もちろん同名ファイルが1組とは限りません。 2つ目以降はB列のフォルダ名が入った下の行のA列(上の例だとA5)にファイル名が入る。 この繰り返しです。 また、もし1つの同名ファイルがなかった場合は、A1に「同名ファイルなし」と表示させます。 ちなみに重複の場合の枝番の付け方に規則性がないため手作業で行いますが、枝番をつけて同名ファイルを無くした あとにまとめて親フォルダに全データを移すこともマクロで可能ならアドバイスください。 フォルダ構成は1つの親フォルダに対して複数の子フォルダで、孫フォルダはありません。 OSはWinXP、Excelは2002です。 よろしくお願いします。

  • コマンドプロンプト

    コマンドプロンプトで下記の処理がしたいです。 複数のフォルダに同じファイル名(INDEX.txt)が存在しております。 フォルダA   INDEX.txt フォルダB   INDEX.txt ... フォルダZ   INDEX.txt INDEX.txtの中身以下の状態です。 (フォルダBならAの部分がB)  0001,フォルダA,  0002,フォルダA,  ...  0100,フォルダA, これに対して一括の処理で下記のように1行目に「0000」を書き加えたいです。  0000  0001,フォルダA,  0002,フォルダA,  ...  0100,フォルダA, どなたか、詳しい方お教え頂ければと思います。 宜しくお願い致します。

  • ファイル移動処理(コマンドプロンプト batファイル)

    ファイル移動処理(コマンドプロンプト batファイル) .batファイルでファイル名に日付がついたファイル(例:yyyymmdd_test.txt)の最新日付から2世代前のファイルまでをディレクトリに移動するような処理を記述したいのですが、やり方がわかりません。 例) 20100924_test.txt →移動対象外 20100925_test.txt →移動対象外 20100926_test.txt →移動対象 20100927_test.txt →移動対象 20100928_test.txt →移動対象 今、この下記の様に記述をしていますが意図した処理になりません。 どなたか助言を頂けないでしょうか? -------------------------------------------------------- mkdir temp set num=0 for %%f in (????????_test.txt) do ( set /a num+=1 if %num%==1 move %f% \temp\%f if %num%==2 move %f% \temp\%f if %num%==3 move %f% \temp\%f )