0

私がやろうとしているのは、複数のファイルを取り、ファイル名から不要なデータを削除することです。良いことは、名前の区切り文字として「_」を使用するすべて同じフォーマットがあることです。形式は Report_16666_2023_01.csv のようになります。私が必要とするのは、ファイルがこの 16666.csv のようになるように、残りを削除できる 2 番目の区切られたデータです。どんな助けでも素晴らしいでしょう。これがどのように機能するかをよりよく理解したいと思います。また、リンクを送ってくれるウェブサイトがあれば、もっと学ぶことができます。

4

2 に答える 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 に答える