我正在尝试创建一个批处理文件,该文件用于创建文件夹并将文件放置在这些文件夹中。我已经做到了,但是现在我想将文件重命名为一个设置变量(项目名称)
我尝试过重命名功能。
@echo off
SET x="Project Name"
md %x%\"Bid Proposals"
md %x%\"Reports"
md %x%\"Drawings"
md %x%\"Specifications"
md %x%\"Addendums"
cd /d K:\ESTIMATING\2019 ESTIMATING\2019 BID-PROPOSALS\%x%\Bid Proposals
copy "filelocation\Bid Proposal - Template.docx"
rename "Bid Proposal - Template" "%x% - Bid Proposal"
我希望它使用变量将文件重命名为项目名称。
它会复制并放置文件,但不会重命名。
答案 0 :(得分:0)
引号过多。
尝试
@echo off
SET "pname=Project Name"
for %%a in ("Bid Proposals" "Reports" "Drawings" "Specifications"
"Addendums") do md "%pname%\%%~a"
cd /d K:\ESTIMATING\2019 ESTIMATING\2019 BID-PROPOSALS\%pname%\Bid Proposals
copy "filelocation\Bid Proposal - Template.docx" .
rename "Bid Proposal - Template" "%pname% - Bid Proposal"
使用语法SET "var=value"
(值可能为空)来确保分配的值中不包括任何杂散的尾随空格。
我已将x
更改为更有意义的内容。
for
依次将每个 [在这种情况下,引用为] 值分配给%%a
。 %%~a
从%%a
中删除引号。
我相信copy
将需要一个目的地。我添加了.
,这意味着the current directory
,因此文件"filelocation\Bid Proposal - Template.docx"
应该以{{1}}的形式复制到当前目录
"Bid Proposal - Template.docx"
将与文件名匹配,因此 from 名称可能应为`“ Bid Proposal-Template.docx”,而 to 名称为“% pname%-Bid Proposal.docx”
我相信rename
的复数可能是Addendum
。