1

私は2つのコマンドを持っています。最初のものは問題なく動作しますが、2 つ目はうまくいきません。ファイルが実際にそこに存在するにもかかわらず、「Could Not Find...」というエラーが表示され続けます。del は機能しないのに、echo は機能するのはなぜですか? そのパス内の拡張子が .jpg のすべてのファイルを削除しようとしています。

forfiles /p "C:\Users\hi\Desktop\test" /m *.jpg /d -1 /c "cmd /c echo @path @fdate"
pause

forfiles /p "C:\Users\hi\Desktop\test" /m *.jpg /d -1 /c "cmd /c del @path @srchmask"
pause
4

1 に答える 1

3

なぜ意志ではなくdel仕事をしないのechoですか?

echo指示したものを出力するだけです。

forfiles /p "C:\Users\hi\Desktop\test" /m *.jpg /d -1 /c "cmd /c del @path @srchmask"

上記のコマンドは正しくありません。toコマンド@srchmask用に定義された「コマンド変数」はありません。forfiles

Command Variables:
  @file    The name of the file.
  @fname   The file name without extension.                
  @ext     Only the extension of the file.                  
  @path    Full path of the file.
  @relpath Relative path of the file.          
  @isdir   Returns "TRUE" if a file type is a directory,
           and "FALSE" for files.
  @fsize   Size of the file in bytes.
  @fdate   Last modified date of the file.
  @ftime   Last modified time of the file.

ソースforfiles

/m *.jpgコマンドの「検索マスク」として既に指定しているためforfiles、 で何をするつもりだったのかわかりません@srchmask。あなたはそれを削除してみることができます...

...の代わりに他のオプションが必要な場合に備えて、 delの構文についても読む必要があります。@srchmask


参考文献

  • Windows CMD コマンド ラインの AZ インデックス- Windows コマンド ラインに関連するすべての優れたリファレンスです。
  • del - 1 つまたは複数のファイルを削除します。
  • forfiles - ファイル (またはファイルのセット) を選択し、各ファイルに対してコマンドを実行します。バッチ処理。
于 2016-07-26T20:27:17.750 に答える