我正在尝试编写一个脚本来用新文件内容替换旧文件内容,新文件内容以以下格式显示:
旧文件:something.txt
新文件:something.txt.new
旧文件需要替换为新文件内容
新文件名要重命名而不用新名称
旧文件需要删除
下面的脚本不起作用:您可以重写一下吗:
@echo off
setlocal enabledelayedexpansion
set FOLDER_PATH=D:\test
for %%f in (%FOLDER_PATH%*) do if %%f neq %~nx0 (
set basename=test
ren *.txt.new !basename!.txt
)
PAUSE
我的文件夹中有很多文件,需要迭代每个文件,只需要在每次迭代中用旧文件名的名称填充basename变量
@echo off
setlocal
set FOLDER_PATH=D:\test
for %%f in (%FOLDER_PATH%\*.new) do if "%%~ff" neq "%~f0" (
ECHO move /Y "%%~ff" "%%~dpnf"
)
PAUSE
or
@echo off
setlocal
set FOLDER_PATH=D:\test
for %%f in (%FOLDER_PATH%\*.new) do if "%%~ff" neq "%~f0" (
if exist "%%~dpnf" ECHO del "%%~dpnf"
ECHO rename "%%~ff" "%%~nf"
)
PAUSE
请注意,操作move
(del
and rename
)命令仅仅是ECHO
ed 用于调试目的。
另请注意if "%%~ff" neq "%~f0"
可以省略迭代*.new
文件为%~f0
有一个扩展.bat
or .cmd
(try echo %~x0 %~f0
).
资源(必读):
- (命令参考)Windows CMD 命令行的 A-Z 索引 http://ss64.com/nt/
- (额外的细节)Windows CMD Shell 命令行语法 http://ss64.com/nt/syntax.html
- (
%~ff
等特殊页面)命令行参数(参数) http://ss64.com/nt/syntax-args.html
- (
>
, 2>&1
等特殊页面)重定向 http://ss64.com/nt/syntax-redirection.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)