私がやろうとしているのは、複数のファイルを取り、ファイル名から不要なデータを削除することです。良いことは、名前の区切り文字として「_」を使用するすべて同じフォーマットがあることです。形式は Report_16666_2023_01.csv のようになります。私が必要とするのは、ファイルがこの 16666.csv のようになるように、残りを削除できる 2 番目の区切られたデータです。どんな助けでも素晴らしいでしょう。これがどのように機能するかをよりよく理解したいと思います。また、リンクを送ってくれるウェブサイトがあれば、もっと学ぶことができます。
質問する
232 次
2 に答える
0
コマンドラインからこれは機能します...
for /f "delims=_ tokens=1-2,*" %a in ('dir *.csv /b') do ren "%a_%b_%c" "%b.csv"
何かが機能せず、デバッグが必要な場合は、コマンドren
を置き換えます。echo
仕組みをよりよく理解するにHELP
は、コマンド プロンプトに入力して、使用可能なすべてのコマンドを表示します。/?
すべてのコマンドは、コマンドの実行内容を説明するパラメーターとしてサポートされています。a を発行するfor \?
と、 /f が何をするか、およびオプションがどのように機能するかがわかります。dir \?
なぜ私が使用したかを明らかにします/b
于 2013-09-09T16:32:02.300 に答える
0
rene の回答と非常に似ていますが、一致するファイルの名前のみを変更します*_*_*_*.csv
。
for %F in (*_*_*_*.csv) do @for /f "tokens=2 eol=_ delims=_" %N in ("%F") do @ren "%F" "%N.csv"
バッチ ファイルで使用するには、以下のようにすべてのパーセントを 2 倍にします。
@echo off
for %%F in (*_*_*_*.csv) do for /f "tokens=2 eol=_ delims=_" %%N in ("%%F") do @ren "%%F" "%%N.csv"
于 2013-09-09T16:49:17.747 に答える