Ste*_*fin 3 windows-7 copy-paste cmd.exe
我有一个文件夹,其中包含一个名为: 的文件'template.xlsx',以及数百个名为:
old_2301 Item 1.xlsxold_2014 Item 2.xlsxold_5321 Item 3.xlsxold_3212 Item 200.xlsx我想复制文件template.xksx并创建 200 个新文件:
2301 Item 1.xlsx2014 Item 2.xlsx5321 Item 3.xlsx3212 Item 200.xlsx我试过这样的事情:
在文件夹中,输入Shift+右移:选择“在此处打开命令窗口”
for %a in (*.*) do copy "template.xlsx" ... ren ...?
Run Code Online (Sandbox Code Playgroud)
我想将复制的template.xlsx文件重命名为与其他文件相同的名称,但要old_删除。
有没有一种简单的方法可以做到这一点?
Dav*_*ill 11
template.xlsx到其他文件的名称,old_删除使用以下批处理文件:
@echo off
setlocal enabledelayedexpansion
rem get list of file names
for /f "usebackq tokens=*" %%i in (`dir /b old_*.xlsx`) do (
rem save the filename
set _name=%%i
rem remove old_ from the name
set _name=!_name:old_=!
rem do the copy to the modified name
copy "template.xlsx" "!_name!"
)
endlocal
Run Code Online (Sandbox Code Playgroud)
您必须使用命名old_*为名称源的文件并在下划线处拆分。
@Echo off
For /f "tokens=1* delims=_" %%A in (
'Dir /B /A-D "old_* Item *.xlsx"'
) Do Echo Copy template.xlsx "%%B"
Run Code Online (Sandbox Code Playgroud)
如果输出看起来不错,请删除副本前面的回声。
解释 /f 选项的解析:
文件名 old_2301 项目 1.xlsx 熟食_ 代币 1 _ * (休息) 对于 var %%A %%B
没有批处理的命令行的变体:
For /f "tokens=1* delims=_" %A in ('Dir /B /A-D "old_*.xlsx"') Do Copy template.xlsx "%B"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9540 次 |
| 最近记录: |