一些DOS脚本整理

生成文件命令列表用以PLSQL命令窗口使用

@echo off
set filename=C:\Users\temp
::前缀
set prefix=@

::生成文件名列表 取消以下注释并置前缀为空
::dir /b *.sql >%filename%

::生成命令行文件名列表 取消以下注释并置前缀为@
::dir /b /s *.sql >%filename%

echo 文件路径:%filename%
echo start...

for /f "tokens=*" %%i in (%filename%) do echo %prefix%%%i>>$

move $ %filename%
echo end...

pause


根据文件夹描述创建文件夹

@echo off
color 0a
echo 请输入文件夹内容描述
set /p dir_des=

::YYYYMMDDHHmmss 格式

set prefix=AML
set date_text=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set file_dir="%prefix%-%date_text%-%dir_des%"

md %file_dir%

cd %file_dir%

echo ###%date_text%-%dir_des%>README.txt

echo end...

exit

替换文件名与文件内容,处理得稍微复杂。

根据一个数据文件 data.csv 其中对应的列与值进行匹配替换

文件夹层级如下

dir
	old/
	new/
	data.csv
	R.bat
::R.bat
@echo off

:: 需要替换文件名或者文件内容的文件夹
set file=.\old\
:: 替换后的文件夹
set newfile=.\new\
:: 映射关系 (filname,newfilename,value,newvalue)
set data=.\data.csv

for /f "usebackq tokens=1-4 delims=," %%a in (%data%) do (
	echo %%a %%b %%c %%d
	setlocal enabledelayedexpansion
	for /f "delims=" %%i in (%file%%%a) do (
		set aa=%%i
		set aa=!aa:%%c=%%d!
		echo !aa!>>"%newfile%%%b.tmp"
	)
	move "%newfile%%%b.tmp" "newfile%%%b"
)

echo end...
pause




批量改后缀,删除文件等

ren *.txt *.sql

del /a /f /s /q "*.~sql"


奖励一下