Solved

Batch script not function as expected.

Posted on 2009-07-06
3
398 Views
Last Modified: 2012-05-07
Hi;

I have a batch script running on a W2K3 server, (see in code section), this batch file would check if any file exist in K:\PO\archive folder, if it is; it will copy the file to k:\po folder, if not exist, it will display a message.

Howerver; I cannot get "IF NOT EXIST k:\po\archive\*.* GOTO NOFILE" command line working.  It always go to BEGIN section eventhough there is no file in k:\po\archive folder.

Any idea?
@echo off

rem This is a batch program to copy the raw data file from Archive folder back to PO folder
 

:CHK

cls

set folder1=k:\po\archive

set folder2=k:\po
 

IF NOT EXIST k:\po\archive\*.* GOTO NOFILE
 

:BEGIN

dir %folder1%\*.#???????
 

echo.

set /p yn=Confirm to restore this file to K:\PO folder ? y/n 
 

if "%yn%"=="" (echo Not entry) & (GOTO CHK) 

if /I "%yn%"=="n" (GOTO QUIT)

if /I "%yn%"=="y" (GOTO FRESTORE) else (echo Entry not y or n!) & (GOTO CHK)
 

:FRESTORE

ECHO START MOVING...

robocopy %folder1% %folder2% *.*  /mov /maxage:0 /s
 

cls
 

dir k:\po\*.#???????

echo.

echo ************************************************************************

echo ** If you can see the file listed now, your file restore is complete. **

echo ** Run AGAIN.                                          **

echo ************************************************************************

echo.

echo ___________________________________________________________

echo If you do not see the file restored, please try again or 

echo.

echo contact I.T. Dept by e-mail or phone.                    

echo ___________________________________________________________
 

:END
 

echo.

set yn=

set /p yn=Do this again [y/n]?

if "%yn%"=="" (echo Not entry) & (GOTO END) 

if /I "%yn%"=="n" (GOTO QUIT)

if /I "%yn%"=="y" (GOTO CHK) else (echo Entry not y or n!) & (GOTO END)
 

:NOFILE

echo.

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

echo x No file found in k:\po\archive folder,    x

echo x it could be done already.                 x

echo x No file restore can be done at this time. x 

echo x Asking I.T. Dept for further assistance.  x

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

pause

:QUIT

EXIT

Open in new window

0
Comment
Question by:KANEWONG
3 Comments
 
LVL 6

Accepted Solution

by:
Francois_IT earned 200 total points
ID: 24787590
replace
 IF NOT EXIST k:\po\archive\*.* GOTO NOFILE

With
dir /b /a k:\po\archive\|findstr .>nul:&&(goto :BEGIN)||(goto :NOFILE)
0
 
LVL 2

Assisted Solution

by:lppperes
lppperes earned 50 total points
ID: 24787619
Hi Kanewong.

Try using these lines:
set file_exist = False
dir %folder1% /b | find /v "Some random string" >nul && (set file_exist=True) || (set file_exist=False)
IF %file_exist% == False GOTO NOFILE

Instead of:
IF NOT EXIST k:\po\archive\*.* GOTO NOFILE
0
 
LVL 1

Author Closing Comment

by:KANEWONG
ID: 31600268
Both solutions work but Francois is simple and what I need.
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Scenerio: You have a server running Server 2003 and have applied a retail pack of Terminal Server Licenses.  You want to change servers or your server has crashed and you need to reapply the Terminal Server Licenses. When you enter the 16-digit lic…
On July 14th 2015, Windows Server 2003 will become End of Support, leaving hundreds of thousands of servers around the world that still run this 12 year old operating system vulnerable and potentially out of compliance in many organisations around t…
This video Micro Tutorial explains how to clone a hard drive using a commercial software product for Windows systems called Casper from Future Systems Solutions (FSS). Cloning makes an exact, complete copy of one hard disk drive (HDD) onto another d…
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now