Batch file 从给定位置的文件中提取字符的子程序; 设置“部分=” setlocal DisableDelayedExpansion rem从给定文件读取指定行: 对于/F usebackq^%NUMSKIP%delims^=^eol^=%%L in(“%2”)do( 设置“行=%%L” 如果定义行( setlocal EnableDelayedExpansion rem按位置和长度提取读取行的指定子字符串: 设置“零件=!行:~%POSITION%!” 如果定义了零件( 对于“!PART!”中的/F delims^=^eol^=%%S,请执行以下操作( 端部 设置“部分=%%S” ) )否则( 端部 ) ) rem不从文件中读取更多行,保留循环: 后藤:退出 ) :退出 rem返回提取的字符串: endlocal&设置“%~1=%PART%” 退出/B
只要您不删除Batch file 从给定位置的文件中提取字符的子程序; 设置“部分=” setlocal DisableDelayedExpansion rem从给定文件读取指定行: 对于/F usebackq^%NUMSKIP%delims^=^eol^=%%L in(“%2”)do( 设置“行=%%L” 如果定义行( setlocal EnableDelayedExpansion rem按位置和长度提取读取行的指定子字符串: 设置“零件=!行:~%POSITION%!” 如果定义了零件( 对于“!PART!”中的/F delims^=^eol^=%%S,请执行以下操作( 端部 设置“部分=%%S” ) )否则( 端部 ) ) rem不从文件中读取更多行,保留循环: 后藤:退出 ) :退出 rem返回提取的字符串: endlocal&设置“%~1=%PART%” 退出/B,batch-file,cmd,batch-rename,Batch File,Cmd,Batch Rename,只要您不删除ren命令前面的大写字母ECHO,脚本就不会重命名。所以您a应该是每个文件第一行的ID?非常感谢您:-)这很有效。顺便说一下,我也是一个经济人——这也许可以解释为什么我喜欢和SAP一起工作(我知道有些人认为这很无聊)。我和我女儿有自己的公司,我们已经被超额预订了10年——没有多少人可以这么说:——) @echo off & setlocal EnableDelayedExpansion REM Start by renaming all files in each
ren
命令前面的大写字母ECHO
,脚本就不会重命名。所以您a
应该是每个文件第一行的ID?非常感谢您:-)这很有效。顺便说一下,我也是一个经济人——这也许可以解释为什么我喜欢和SAP一起工作(我知道有些人认为这很无聊)。我和我女儿有自己的公司,我们已经被超额预订了10年——没有多少人可以这么说:——)
@echo off & setlocal EnableDelayedExpansion
REM Start by renaming all files in each folder to the namerule of the bank
cd PL270\UT01
set a=1
for /f "delims=" %%i in ('dir /b *') do (
if not "%%~nxi"=="%~nx0" (
ren "%%i" "P.00934681758.002.TBII.00000!a!".dat
set /a a+=1
)
)
cd..
cd..\PL570\UT01
set a=1
for /f "delims=" %%i in ('dir /b *') do (
if not "%%~nxi"=="%~nx0" (
ren "%%i" "P.00934681758.005.TBII.00000!a!".dat
set /a a+=1
)
)
for /f "delims=" %%i in ('dir /b *') do (
set /p fline=<"%%i"
set code=!fline:~70,4!
echo !code!
if not "%%~nxi"=="%~nx0" (
ren "%%i" "P.00934681758.002.TBII.00000!code!".dat
set /a a+=1
)
)