批处理脚本:将文件名中的每个“@”替换为网络驱动器(包括子文件夹)中的“_”
Batch-Script: Replace every "@" in file name with "_" in network drive including subfolders
我的问题是:
我想替换文件名中的每个特殊字符,例如“@”。
示例:
旧文件:test@home.txt
新文件:test_home.txt
这应该在一个特别选择的文件夹中完成,包括子文件夹。用户应轻松更改位置(文件夹)。
好吧,我会试一试,但我不确定如何:
%PATH% = G:\Tests\Folder
::Replace '@' with '_'
SET _test=test@file.txt
SET _result=%_test:_=file
ECHO %_result% =test_file
set
替换字符串的语法:
set "var1=my old hat"
set "var2=%var1:old=new%"
echo %var1% was better than %var2%
获取所有 txt 文件:
for %%i in (*.txt) do (
echo %%i
rem substitution does not work with special %%i variable type
set "oldname=%%i"
set "newname=!oldname:@=_!"
echo rename "!oldname!" "!newname!"
)
为什么 !
而不是 %
?参见
我的问题是:
我想替换文件名中的每个特殊字符,例如“@”。
示例:
旧文件:test@home.txt
新文件:test_home.txt
这应该在一个特别选择的文件夹中完成,包括子文件夹。用户应轻松更改位置(文件夹)。
好吧,我会试一试,但我不确定如何:
%PATH% = G:\Tests\Folder
::Replace '@' with '_'
SET _test=test@file.txt
SET _result=%_test:_=file
ECHO %_result% =test_file
set
替换字符串的语法:
set "var1=my old hat"
set "var2=%var1:old=new%"
echo %var1% was better than %var2%
获取所有 txt 文件:
for %%i in (*.txt) do (
echo %%i
rem substitution does not work with special %%i variable type
set "oldname=%%i"
set "newname=!oldname:@=_!"
echo rename "!oldname!" "!newname!"
)
为什么 !
而不是 %
?参见