Windows批处理或VB脚本添加扩展名而不是在.csv文件的末尾添加一行

时间:2012-11-29 13:19:06

标签: vbscript batch-file

每天有4个文件下载到映射驱动器,没有扩展名。我已经搜索了我想要的脚本,但我找不到它。我找到了一个cmd脚本,但只添加了一个csv作为扩展名。但我希望所有脚本都在1个文件中。也许有人可以帮助我。

为此文件添加扩展程序:

daily1.20121129
daily2.20121129
equity.20121129
future4.20121129

(。20121129'这是下载的日期,每天都会更改。)

脚本必须在每个文件末尾的2个文件中添加文本:'daily1.date.csv'和'daily2.date.csv'每天都会更改日期我认为脚本必须打开它(如果包含) daily1和daily2。

3 个答案:

答案 0 :(得分:0)

我不太确定你想要达到的目标。您是否希望所有下载的文件都放在一个扩展名为.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

当然,如果你想在两个文件中附加不同的东西,你需要两个语句。

if "!filename:~0,6!" == "daily1" echo something >> "!filename!"
if "!filename:~0,6!" == "daily2" echo something else >> "!filename!"

答案 1 :(得分:0)

如果您只想将文件夹中的所有文件重命名为csv扩展名,则可以使用

ren C:\folder\files\* *.csv

答案 2 :(得分: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' "