我创建了一个批处理脚本,它通过命令行打开文件时复制了我指定的文件。这是脚本:
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}} ,但现在脚本无法再处理带空格的文件。希望这是我需要做的最后一件事。 :)
答案 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"