bat复制同一个文件多次并且重新命名,执行bat文件后目标文件夹为空,不知道什么原因复制不成功,
有了解的指导一下吗?
把下面代码复制到文件,保存后缀名为bat就可以了
:main
@echo off
set /p month=请输入月份
set /p day=请输入当月天数
if %day%==31 goto 31天
if %day%==30 goto 30天
if %day%==29 goto 29天
if %day%==28 goto 28天
cls
@echo 输入的天数不符合
goto main
:31天
@echo 在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,31) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit
:30天
@echo 在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,30) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit
:29天
@echo 在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,29) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit
:28天
@echo 在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,28) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit
:exit
pause
exit
提供一种思路:bat文件的默认打开方式被改成编辑方式了。
而编辑是用记事本打开的,所以执行bat文件后目标文件夹为空
分析解决:打开cmd运行 assoc .bat=batfile ,接着资源管理器,文件夹选项,新建扩展名.bat高级选中ms-dos批处理文件,在文件夹选项中会多出一个BAT文件的操作,选中,点高级,把文件默认执行操作设定为open
思路2:右键管理员运行,但必须在第一行加入cd /d %~dp0
%%d哪里来的?for /l %%d吧?代码请用代码插入功能插入。
可以的,你的语法有些问题
@echo off
set /p month=month
set /p day=day
if %day%==31 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv)
goto aa)
if %day%==30 (
for %%d in (1,1,%day%) do (copyE:\test\module.csv E:\test1\test%month%%%d.csv)
goto aa)
if %day%==29 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv)
goto aa)
if %day%==28 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv)
goto aa)
echo 'input error'
:aa
pause
exit