问题描述
我在多个文件夹中有一个 *.bat 文件,它重命名了某些文件,因此文件名中包含项目编号、项目名称和首字母缩写。到目前为止,运行该文件将要求用户输入项目编号、项目名称和保存为变量的首字母(no、project 和首字母)。保留每个原始文件名,但括号中将是所需的项目特定数据)。到目前为止它有效,但我想要的是设置一个批处理文件,其中名称为项目特定数据设置模板,例如 bat 文件的文件名可能是:
重命名
谢谢。
现有代码如下:
cls
echo off
pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul
echo
attrib -r *.* /s
set /p no= Enter Project Reference in style XY00.000:
set /p project= Enter Project name (without any underscores):
set /p initial= Enter your Initials:
for /f "tokens=1* delims=(" %%i in ('dir /b *.xlsm') do ren "%%i(%%j" "%%i(%no% %project%_%initial%).xlsm"
for /f "tokens=1,2* delims=()" %%i in ('dir /b *.docm') do ren "%%i(%%j)%%k" "%%i(%no% %project%_%initial%)%%k"
解决方法
我将用户输入替换为:
set infovariable=%~n0
将 bat 文件的文件名安全地作为变量,并在以后使用它来重命名适当的文件。 bat 文件的名称正是我想要的文本。大功告成!