特定のファイルを除き、英数11桁の画像ファイルを消したいと思っています。
その特定のファイルも英数11桁なのでややこしいことになっています。
作りかけですが、以下のようにしています。
echo off
SET target_path=c:\test
pushd %target_path%
for %%f in ( * ) do call :sub "%%f"
popd
exit /b
:sub
set flag=OFF
for %%e in ( nowprinting.gif nowprinting.jpg ) do if %1=="%%e" set flag=ON
if "%flag%"=="ON" goto :EOF
del %1
goto :EOF
ディレクトリの中には、削除対象外の英数11桁ではないファイルもあるため、
チェックが必要です。
正規表現など足してみたのですがうまくいきません。
ご教授いただけないでしょうか。
No.1ベストアンサー
- 回答日時:
■案1
削除対象外のファイルの属性を変更する。
例えば、読み取り専用にしたり、隠しファイルにする。
その上で、属性を指定して一括削除。
ATTRIB +R nowprinting.*
DEL /A:-R *
■案2
一時ファイルで削除対象ファイルを管理。
FINDSTR で対象ファイルを抽出してから削除する。
DIR /B > %TEMP%\target0.tmp
FINDSTR /R /I /X
/C:"^[0-9a-z][0-9a-z][0-9a-z][0-9a-z]
[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]
[0-9a-z][0-9a-z]\..*"
%TEMP%\target0.tmp > %TEMP%\target1.tmp
FINDSTR /R /V
/C:"^nowprinting\."
%TEMP%\target1.tmp > %TEMP%\target2.tmp
FOR /F %%f IN ('type %TEMP%\target2.tmp') DO DEL %%f
No.4
- 回答日時:
・この作業をする頻度は?
・BATでないとだめな理由は?
例えば、数回しかやらないのなら、あれこれ考えている間に手動で削除した方が早いです。
例えば、VBScriptを使えばもっと簡単にできるのではないでしょうか。
この回答への補足
質問に対して欲しいのは「回答」であって、質問じゃないんですけど。
「Aでなんとかしたい」と質問しているのに「Bなら楽だ」とか
頓珍漢な回答しかできないなら、黙っていてください。
No.3
- 回答日時:
こういうのはどうでしょう?
if %1:~0,11% == %1:~0,-4% DEL %1
「先頭から11文字」と「後ろの4文字以外」が一致するかどうか判定します。
つまり「拡張子を除くファイル名が11文字」に等しいわけです。
ちなみに上記の記法についてはSETのヘルプに記載されています。
No.2
- 回答日時:
1、何がどう「うまくいかない」のかを書く
2、「その特定のファイル」は「nowprinting」でいいのか
3、「英数11文字のファイルの削除」はできているのか
こういうことはちゃんと記載してもらわないと。
とりあえず特定の文字列を含むファイルを省くには最初のFORにFオプションをつけてfindを使えば早いと思います。
for %%f in ( * ) do call :sub "%%f"
↓
FOR /F "delims=" %%F IN ('dir /b ^| find "nowprinting"') do ~
この回答への補足
nowprinting.jpgとnowprinting.gifを除いたファイルを削除できている状態です。
11桁のチェックは入っていないので、ファイル名が11桁以外でも削除してしまうので、そのチェックを入れたいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のExcelファイルにある同名...
-
CSVファイルの特定行の削除
-
iCloud for Windowsをアンイン...
-
彼女の過去の恋愛に嫉妬してし...
-
[Unity]シーンファイルの中が消...
-
エクセルのマクロについて教え...
-
EXCELVBAにて文字列にして「01...
-
ファイルが移動してもリンクの...
-
【Excel VBA】ファイルにヘッダ...
-
Excel: ファイル名になぜ、[...
-
vbsからのExcelマクロ呼び出し...
-
5000個のtiffファイルをpdfへ変...
-
CSVファイルの暗号化
-
このファイルは外部のエディタ...
-
HTMLのリンクで、EXCELをIEでは...
-
エクセルの拡張子XLSのファイル...
-
WinPCのメモ帳を、アンドロ...
-
Excelに貼り付けた画像を圧縮す...
-
英数11桁のファイルを消したい。
-
iPhoneで撮った動画をiPhoneの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの特定行の削除
-
彼女の過去の恋愛に嫉妬してし...
-
OneDrive必要なものでしょうか
-
EXCELVBAにて文字列にして「01...
-
vbsからのExcelマクロ呼び出し...
-
複数のExcelファイルにある同名...
-
Excel: ファイル名になぜ、[...
-
ファイルが移動してもリンクの...
-
FTPのgetとputの使いわけ。
-
iCloud for Windowsをアンイン...
-
VBAにおいて、ファイルの移...
-
docxをmht形式で保存したファイ...
-
Excelに貼り付けた画像を圧縮す...
-
5000個のtiffファイルをpdfへ変...
-
[Unity]シーンファイルの中が消...
-
自動で.xlsを閉じて指定フォル...
-
エクセルのファイル:「自分」が...
-
Googleドライブについて
-
htmlファイルを結合して一つの...
-
エクセルの固定範囲にCSVを貼り...
おすすめ情報