1

毎日、マップされたドライブに拡張子なしで 4 つのファイルがダウンロードされます。必要なスクリプトを検索しましたが、見つかりませんでした。cmdスクリプトを見つけましたが、csvを拡張子として追加するだけです。しかし、すべてのスクリプトを 1 つのファイルにまとめたい。多分誰かが私を助けることができます。

このファイルに拡張子を追加します。

毎日1.20121129
Daily2.20121129
エクイティ.20121129
future4.20121129

(.20121129' これはダウンロードされた日付で、毎日変更されます。)

スクリプトは、各ファイルの末尾にある 2 つのファイルにテキストを追加する必要があります: 'daily1.date.csv' と 'daily2.date.csv' 日付は毎日変更されます Daily1 と Daily2 が含まれている場合、スクリプトはそれを開く必要があると思います.

4

3 に答える 3

0

あなたが何を達成したいのかよくわかりません。ダウンロードしたすべてのファイルを、拡張子が の 1 つのファイルにまとめます.csvか? これは次のように実現できます (ディレクトリに他のファイルがないと仮定します):

>output.csv type *

または、.csvダウンロードした各ファイルに拡張子を追加しますか? これは次のように実現できます (ここでも、ディレクトリに他のファイルがないことを前提としています)。

for %%f in (*) do ren "%%~f" "%%~f.csv"

または、特定のファイルのみをマージしますか? その場合、どのソース ファイルをどの宛先ファイルに入れる必要がありますか?

または、現在の日付のファイルを同じディレクトリ内の他のファイルと区別する必要がありますか? そのためには、コンピューターの地域設定で定義されている日付形式に依存する日付文字列を作成する必要があります。次のようなMM/DD/YYYY日付文字列を作成できるフォーマットを想定します。YYYYMMDD

setlocal EnableDelayedExpansion

for /f "tokens=1-3 delims=/" %%i in ("%DATE%") do set d=%%k%%i%%j

REM do stuff

endlocal

編集:

名前を変更する前または後にファイルにテキストを追加するには、それらのアクションをループに組み込むことができます。

setlocal EnableDelayedExpansion

for %%f in (*) do (
  set filename=%%~f
  if "!filename:~0,5!" == "daily" echo something >> "!filename!"
  ren "!filename!" "!filename!.csv"
)

endlocal

もちろん、2 つのファイルに異なるものを追加する場合は、2 つのステートメントが必要になります。

if "!filename:~0,6!" == "daily1" echo something >> "!filename!"
if "!filename:~0,6!" == "daily2" echo something else >> "!filename!"
于 2012-11-29T19:52:46.433 に答える
0

私はいくつかの他のフォーラムを使用しましたが、これは私が欲しかったものです。申し訳ありませんが、私が望んでいたものが正しくありませんでした。たぶん将来、それは他の人を助けるでしょう。

ren C:\blp\bbdl\_csv\* *?.csv
PING 127.0.0.1 -n 6
for %%j in (C:\blp\bbdl\_csv\dailycurrency1.out.????????.csv) do @echo.TEST EUR>> %%j
PING 127.0.0.1 -n 6
for %%j in (C:\blp\bbdl\_csv\dailycurrency2.out.????????.csv) do @echo.TEST >> %%j
PING 127.0.0.1 -n 6
powershell -command "& 'C:\NewScript\copy_script_PS.ps1' "
于 2012-12-03T12:54:03.787 に答える
0

フォルダー内のすべてのファイルの名前を csv 拡張子に変更するだけの場合は、次を使用できます

ren C:\folder\files\* *.csv
于 2012-11-30T09:53:54.777 に答える