如何使用批处理文件重命名闪存驱动器上的文件夹

时间:2015-09-01 14:50:58

标签: batch-file cmd

我正在尝试创建一个批处理文件,将文件夹的内容备份到我的闪存驱动器上,并重命名闪存驱动器上的上一个文件夹。这是代码。

@echo off
echo Are you sure you want to erase the previous backup file? (Y,N)
set /p ans=
if %ans%==Y goto Backup 
goto Exit
:Backup
rd "E:\Batch\BFiles Backup" /s
ren "E:\Batch\BFiles" "BFiles Backup"
:Copy
mkdir E:\Batch\BFiles
xcopy C:\Users\Habib\Documents\BFiles /E /Y E:\Batch\BFiles
echo Files have successfully been copied!
pause
:Exit
exit

当我运行批处理文件时,它会复制文件,但不会重命名已存在的文件夹,因为“访问被拒绝”。我已经尝试在管理员版本的Cmd中运行它,但它仍然无法正常工作。我的用户也是管理员,所以我不知道访问被拒绝的原因。

1 个答案:

答案 0 :(得分:1)

首先,删除你的@ECHO OFF,直到你完成代码调试..

添加PAUSE语句,以便您可以停止并查看正在发生的事情..

让我们重新格式化你的代码..

ECHO Are you sure you want to erase the previous backup file? (Y,N)
set /p ans=
if %ans%==Y goto Backup 
PAUSE
goto Exit
:Backup
PAUSE
IF EXIST "E:\Batch\BFiles Backup\." rd "E:\Batch\BFiles Backup" /s
PAUSE
IF NOT EXIST "E:\Batch\BFiles Backup\." ren "E:\Batch\BFiles" "BFiles Backup"
PAUSE
:Copy
IF NOT EXIST "E:\Batch\BFiles\." mkdir E:\Batch\BFiles
PAUSE
xcopy C:\Users\Habib\Documents\BFiles /E /Y E:\Batch\BFiles
IF errorlevel 0 echo Files have successfully been copied!
pause
:Exit
exit

然后,当事情开始看起来正确时,逐个删除PAUSE语句......

希望这有帮助!