批量重复脚本

时间:2014-07-20 02:27:23

标签: function batch-file command duplicates space

我创建了一个批处理脚本,它通过命令行打开文件时复制了我指定的文件。这是脚本:

setlocal
set file=%1
for /f %%i in ("%file%") do (
set drv=%%~di
set path=%%~pi
set ext=%%~xi
set name=%%~ni
)
copy "%1" "%drv%%path%%name% - Duplicate%ext%"
pause

这是我使用的命令:

D:\> "duplicate.bat" D:\testfile.txt

这个例子很有效,但是当我在文件名中有空格时,例如:

D:\> "duplicate.bat" D:\test file.txt

批处理文件将文件名读取为test,扩展名为空白。

希望这是可能的:)


好的,感谢madhawa priyashantha帮助解决这个问题,但现在我意识到,如果我不想隐藏运行脚本时弹出的cmd窗口,我可以使用 { {3}} ,但现在脚本无法再处理带空格的文件。希望这是我需要做的最后一件事。 :)

2 个答案:

答案 0 :(得分:0)

尝试。 d产品:> " duplicate.bat" " D:\ test file.txt"

答案 1 :(得分:0)

这是经过测试和工作的。如果你想传递包含空格的参数,你需要包装你的参数,否则蝙蝠将空格后的下一部分视为下一个参数

@echo off
copy %1 "%~n1 - Duplicate%~x1"
pause  

现在你需要像这样调用这个bat文件

m.bat "D:\test file.txt"

如果没有空格,

 m.bat "D:\testfile.txt"