1

だから...はい、私はかなり初心者です。それでもできるだけうまく説明しようとしています。しかし、C:ドライブから正確なファイルを見つけて(バッチで)、名前を変更するなどの助けが必要です。また、C: からファイルを見つけて削除する方法も知りたいと思っていました。(1 つのスレッドに 2 つの問題があります...)

問題 1. 例: C: ドライブから "text1.txt" というファイルをバッチで検索したい。

問題2.例:C:ドライブから「image1.jpg」というファイルをバッチで探したい、見つかったら削除する。

または、これをバッチでどのように行うことができますか? del image1 は、名前の変更と同じように、既に存在する同じフォルダーのみをチェックします。C: ディスク全体からバッチでこれらのファイルを見つける方法は? ほんの一例です。バッチで正確なファイルを検索して、解決、名前変更、および削除する 2 つの小さなこと。バッチでサブフォルダからファイルを削除するのはどうですか? しかし、私のノウハウの低さは申し訳ありませんが、どこかからこれらのことを開始する必要があります。

4

2 に答える 2

1

ああ、気さくなプログラマーが何人かいるのは素晴らしいことです! 私が知っているほとんどのプログラマーはUGLYです。

for /f "delims=" %%i in ('dir /s /b /a-d "text.txt"') do (ren "%%i" text2.txt)

名前変更タスクを実行する必要があります。ただし、ドライブと開始ディレクトリをファイル名の先頭に追加する必要があります。そうしないと、すべてのtext.txtサブディレクトリ内のすべてのファイルの名前が変更されます。したがって、以下のすべてのディレクトリ...dir /s/b "c:\users\kaster\text.txt"...が処理され、名前が付けられたすべてのファイルの名前が新しい名前に変更されます。"c:\users\kaster\"text.txt

「text.txt」という名前のファイルの一致するディレクトリ名を無視して、サブディレクトリを含む基本モード (つまり、ファイル名のみ)でDIRスキャンを実行することによって機能し、完全なファイル名が に割り当てられます。この句は、スペースが区切り文字として解釈されないようにします。/b/s/a-d%%idelims

見る

`FOR ?` 

ドキュメントのプロンプトから。

Aそして、これをプロンプトから直接実行している場合は、それぞれ%%を次のように変更します%

2番目のコマンドはかなり簡単です

del /s "image1.jpg"

繰り返しますが、開始パスを先頭に追加し、非常に注意してください。これにより、指定したディレクトリ内およびその下にある「image1.jpg」に一致するすべてのファイル名が削除されます。

全体を通して、ファイル名を引用すると、ファイル名spacesまたはディレクトリ名が正しく処理されます。

于 2013-03-28T18:50:52.823 に答える
1

これを試して。echo出力に問題がなければ、コマンドを行から削除します。

for /f "delims=" %%i in ('dir /s /b /a-d \file1.txt \image1.jpg') do if "%%~nxi"=="file1.txt" (echo ren "%%~i" "text2.txt") else if "%%~nxi"=="image1.jpg" echo del "%%~i" 
于 2013-03-28T18:43:02.070 に答える