私はこのスクリプトを持って、私は現在のディレクトリ内のファイルをすべて削除したいと思いますが、私は一つのファイル(update.batを)を維持したい現在のディレクトリ内の1つのファイルを除くすべてのファイルを削除するにはどうすればよいですか?
:
for /r %%i in (*) do if not '%%~ni' == 'update.bat' del %%i
それので、期待どおりに動作しませんすべてのファイルを削除するため、条件が考慮されていないようです。
スクリプトの問題は何ですか?
拡張子のない名前。 cmdプロンプトを開き、 'FOR /? 'と打ち込んですべての修飾子が何をするのかを読んでください。バッチファイルが実行されているのを見ている場合、for変数がファイル名のみに展開されているのを確認できるはずです。また、 'FOR/R'がディレクトリツリーを歩きます。現在のディレクトリだけを望むなら '/ R'を削除してください。 – Squashman
次のスクリプトの作成を検討しましたか? 'for/r %% i for(*)に対してecho '%%〜ni''を実行します。これはあなたのスクリプトが何をしているのかをあなたに教えてくれるでしょう:-) – Dominique
あなたは他の言語の有能なプログラマーであるようですので、@ Dominiqueのアドバイスを受けて、あなたのようなバッチファイルを正しくデバッグすることを願ってくださいコマンドの出力を見て、使用していたコマンドのヘルプファイルを読んだら、あなた自身で問題を解決できたはずです。 – Squashman