Reputation: 11
This batch script is supposed to map to PC and rename the files in that folder using the date & time stamp and copy them to another location on a different PC. It should then delete all the files in that source folder except for a file that called "LBBS.log". It all works fine except for the delete part. It isn't deleting anything in the folder and it is actually deleting the batch file itself. When I run it, it copies over fine but then it deletes itself. Can someone please tell me what I need to change for this to work. What am I missing? Its on a windows 7 environment. Thanks in advance.
net use x: \\MTLLBBS023\C$
set "stamp=%date:~4,2%%date:~7,2%%date:~10,4%%time:~0,2%%time:~3,2%%time:~6,2%"
set "source=MTLLBBS023"
xcopy /S /E /I x:\logs E:\Data\Logs\MTLLBBS023\%source%-%stamp%.*
cd x:\Logs
for %%i in (*) do if not %%i == LBBS.log del %%i
net use x: /delete
Upvotes: 0
Views: 64
Reputation: 14305
The problem is that your script and target directories are located on separate drives.
When you cd
to another directory, the command will fail if you try to move to another drive without using the /d
option.
Instead of cd x:\logs
, you should say cd /d x:\logs
- this will change the drive and directory.
Alternatively, instead of the net use
and net use delete
commands, you can simply pushd \\MTLLBBS023\C$
to go to the network drive (this also automatically creates a temporary network drive) and then popd
at the end of the script to leave the directory and remove the mapped drive. This way, you don't need to cd
at all.
Upvotes: 2