• 締切済み

bat処理

batファイルを使ってCドライブのユーザーのtempフォルダの中の Excelファイルxlsを一括削除したい Osはwin7とxp for /d %%a in (subdir*) do del "%%a\*.jpg" うまく動きません、よろしくお願いします。

みんなの回答

  • LHS07
  • ベストアンサー率22% (510/2221)
回答No.1

> for /d %%a in (subdir*) do del "%%a\*.jpg" 意味がわかっていますか? del "%%a\*.jpg" で削除するのは拡張子がjpgのJPEGファイルです。 del *.jpg で  delは削除するコマンド *はワイルドカード 文字数に関係なく全てが選択されます。 *.jpg はファイル名は a.jpg b.jpg c.jpg aa.jpg aaa.jpg が対象になります。 ?.jpg では a.jpg b.jpg c.jpg が対象になり aa.jpg aaa.jpgは対象になりません。 BATファイル入門を読みましょう わからないで使っているとトラブルになる怖れがあります。 最悪パソコンが立ち上がらなくなります。 基本から最初から何回も読んで概略を理解してからにしたほうが安全です。

参考URL:
http://memorva.jp/memo/windows/dos_bat.php
mayumi-235
質問者

お礼

Jpgは例えですよ del出来ないから質問しています

mayumi-235
質問者

補足

全てのExcelファイルを消したいのです 無知ですみません

関連するQ&A

  • (VBA)bat処理の結果がおかしい

    以下の1)から5)までをVBAで行いたいのですが 1)、2)までのコードはネットを参考に作成したのですが  2)の結果が¥tempに書き出されませんでした。   (C:¥に直接書き出される) 原因は何でしょうか ?  (コードの修正をお願いします。) 以下は、行いたい事のイメージ。-------------------------------------------------- 1)指定ディレクトリにディレクトリ(C:\)に保存した   BATファイル(aa.bat)をコピーする 2)指定ディレクトリ内でaa.batを起動する 3)指定ディレクトリーに最初から存在したフォルダーを削除する 4)aa.batによって作成されたフォルダーを最初のフォルダー名に変名する 5)aa.batをコピー先から削除する 例:指定ディレクトリをC:¥temp、aa.batをC:\tempにコピーしたと  C:¥temp¥AA  C:¥temp\AA¥subAA   C:\temp\aa.bat aa.batを\temp内で起動した後で ------>を実施  C:¥AA    ------> 削除  C:¥AA_SUBAA ------> C:\AAに変名  C:\temp\aa.bat -----> 削除 最終的に  C:¥temp\AA --------------------------------------- Sub Test() Dim strPath As String Dim intPathLen As Integer Dim intR As Integer Dim F As Variant Dim obj As WshShell Dim sPath 'Range("A5:F100").Clear ' フォルダーを自由に選べること。 参考:officeTANAKA With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then ' MsgBox .SelectedItems(1) If Len(.SelectedItems(1)) = 3 Then ' c:\の場合とサブフォルダーの場合 mypath = .SelectedItems(1) Else mypath = .SelectedItems(1) & "\" End If End If End With If mypath = Empty Then MsgBox "フォルダー名の指定をキャンセルしました。": Exit Sub MyName = Dir(mypath, vbDirectory) ' 最初のフォルダ名を返します。 ’Range("A2") = mypath 'コピー先フォルダーの指定 'BATファイルのコピー FileCopy "C:\aa.bat", mypath & "aa.bat" 'batファイルの起動 sPath = mypath & "\aa.bat" Set obj = New WshShell Call obj.Run(sPath, WaitOnReturn:=True) End Sub ------------------------------------------------------------------- 以下は、aa.batの内容です。 for /d %%i in (*) do ( pushd . cd %%i for /d %%j in (*) do ren "%%j" "%%i_%%j" for /d %%k in (*) do ren "%%k" "../%%k" popd rd "%%i" ) -------------------------------------------

  • bat について

    @echo on for %%F in ( D:\1\*.xls ) do call :sub "%%F" %%~tF exit /b :sub if not %2==%date% goto :EOF copy /d /y "%~f1" D:\2 goto :EOF 上記は1のフォルダのxlsの最新のファイルを2のフォルダにコピー ですが1のフォルダの中に1Fを含むファイル(20120915-1F) この1Fを含むファイルで最新のファイルだけを2のフォルダにコピーしたいのです。 どうか宜しくお願い致します。

  • Batファイルについて

    複数階層のフォルダにまたがって格納されているエクセルファイルをBatファイルでコピー、又は、移動させたいのです。コピー、移動させたいファイルのファイル名の頭(顧客IDになっている)を拾ってリストにしてあります。移動させたいエクセルファイルが複数のフォルダに入っているので、最上階層のフォルダでbatファイルを実行できればと思っています。 現在は複数あるフォルダの中に下記のBatファイルと対象リスト.txtをを入れて1フォルダずつ実行していますが、数十個あるフォルダなので作業が大変です。最上階層で出来るようにしたいのです。 FOR /F %%i in (list.txt) do copy %%i "移動先のパス"

  • バッチファイルの書き方

    サブフォルダすべてにひとつのファイルをコピーしたいのですが、 for /d %%a in (subdir*) do copy コピーしたいファイル名 "%%a\" 上のようなバッチファイルではうまくいきませんでした どのようにしたらいいのか、どなたか教えていただけないでしょうか

  • 複数ファイルの処理が終わった後シャットダウンしたい

    タイトル通りです 以下の記述をしたbatに複数のファイルをドラッグアンドドロップし、別のbatに処理を投げています for %%a in (%*) do C:\Users\~~~.bat %%a すべてのファイルの処理が終わった後、windowsをシャットダウンしたいのですが、やり方が分かりません 何か方法があれば教えて下さい

  • バッチにすると動作しない

    コマンドプロンプト初心者です。 仕事でファイルの名前を一括変換する為にバッチを作成したいのですが、 コマンドプロンプトでは動作するのに、bat形式のファイルに保存して実行すると、一瞬だけ窓が開いてすぐ終了してしまいます。 変換はもちろんされておりません。 フォルダの構成は下記の通りです。 フォルダ ┣フォルダA    ┣p001-a01_01.jpg    ┣p002-b01_01.jpg    ┗p003-c01_01.jpg ┣フォルダB    ┣p001-a01_01.jpg    ┣p002-b01_01.jpg    ┗p003-c01_01.jpg ┗フォルダC フォルダ内にある001-a01_01.jpgの【_01】を消して001-a01.jpgという風にしたいのですが、 cd C:\Data for /r /d %i in (*) do ren %%i\p???-a01_01.jpg p???-a01.jpg for /r /d %i in (*) do ren %%i\p???-b01_01.jpg p???-b01.jpg for /r /d %i in (*) do ren %%i\p???-b01_01.jpg p???-c01.jpg 上記のコマンドをメモ帳に書いて、コマンドプロンプトで実行したところ、ファイル名の変換はされました。 しかし、そのメモ帳をbat形式で保存をして実行をすると、冒頭で書いたように実行されません。 書き方など、自分なりに調べて試してみたのですが、やはり変換されません。 コマンドプロンプトで実行する時と、バッチで実行する時では書き方が違うのでしょうか? よろしければ知恵を貸していただきたく思います。

  • ファイル移動処理(コマンドプロンプト 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 )

  • リネームの為のbatファイル作成

    Bmpファイル名の頭に全てP_がついています。 それを削除するbatファイルを作成しています。 P_****.bmp→****.bmp 下記を作成しましたが、★の部分で詰まっています。 ------- @echo off IF EXIST b.bat del b.bat for %%I in (J_*.bmp) do echo ren %%I ★%%I>>b.bat call b.bat ------- どなたかご教授ください。 よろしくお願いします。

  • batファイルでファイルの件数取得

    batファイルでカレントフォルダ内のCSVファイルの件数を取得したく、 以下のbatファイルを作成しましたが、件数が多いと若干のズレがでます。 どこがダメなのでしょうか?ご教授お願いします。 for /f "usebackq" 55i in(`dir /B /S *.csv`) do ( SET /P<NUL=%%i: type %%i | find /c /v "" )

  • batでファイルをコピーして名前を変更

    Aフォルダに 修正指示26-23.xls というファイルがあります。 このファイルをドラック&ドロップでbatファイルに投げ込み Aフォルダ内にコピーし、そのコピーした方のファイル名を abc〇〇〇.xlsというファイル名に変更したいです。 〇〇〇の部分はINPUTBOXのようなものが表示されて 自分で入力をできるようにしたいです。 INPUTBOXのようなものが表示されなくても、〇〇〇の部分だけ自分で入力すれば前部分のabcは固定でつけばokです。 batで無理であればVBSでもいいです。 なにかいい方法があれば教えてください。