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

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

luka3の回答

  • luka3
  • ベストアンサー率74% (299/401)
回答No.4

もしかして、バッチファイルもしくはそのショートカットにtxtファイルをドラッグ&ドロップしていませんでしょうか? その場合バッチファイルに渡る引数(%1)がフルパスになってしまいます。 であれば1行目を次のように変えて下さい。 for /f "delims=- tokens=1" %%i in ("%~nx1") do set V=%%i echo off しなければ途中経過が表示されますので、何が問題になっているか確認するようにしてください。 解決できない場合はこの途中経過を公開できる範囲で提供してもらえると助かります。

yakkun2338
質問者

補足

uka3さん、おはようございます。 本当に何度も申し訳ございません。 ご指摘された様に、txtをドラッグしたりという事はしていません。 もう一度、現在の状況をご説明します。 「C:\データ転送」というフォルダに『ABCD-120306.txt』、『ABCD-120307.txt』という2つのファイルがあります。 この状態で「C:\データ転送\system」のフォルダにある「転送.bat」をダブルクリックして処理を実施したいと思います。 この時に「C:\データ転送」フォルダに、ABCD-日付で始まるファイルが2つ以上ある場合はエラーとして処理をしないようにしたいのです。 つまりABCD-日付.txtファイルが1つの時だけ処理を実施したいと思っています。 以下に「転送.bat」を動かしたときの結果を記述いたします。 ↓↓↓ C:\データ転送\system>cd C:\データ転送 C:\データ転送>for /F "delims=- tokens=1" %i in ("") do set V=%i C:\データ転送>for /F %a in ('dir /b C:\データ転送\-*.txt|find /c /v ""') do set L=%a ファイルが見つかりません C:\データ転送>set L=0 C:\データ転送>if 0 == 0 goto error C:\データ転送>echo エラー !! "A-"で始まる転送ファイルを用意して下さい!! エラー !! "A-"で始まる転送ファイルを用意して下さい!! 本当に何度も申し訳ありません・・。

関連する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 )