开发者

seeking alteration in batch file

I have a batch file as under:

@echo off
"C:\Program Files\WinZip\WINZIP32.EXE" -min -a -ex "C:\Documents and Settings\vipul\Desktop\vipul.zip" files vipul.xls
copy vipul.zip "C:\Documents and Settings\vipul\Desktop\My briefcase"
copy vipul.zip "E:\Valuations\2009"
exit

HERE vipul.xls is the file on my desktop which is to be copied to my briefcase and same is to be ziiped and then sent to E\valu...folder. Alteration i want here is as under: every 开发者_开发问答time the file name is getting changed, e.g. it may be sanj.xls or lago.xls and so on. (in place of vipul.xls), so how i can do this? Just like there is printdir.bat file in xp


You could have this batch file which works for any file with .xlsextension:

@echo off
"C:\Program Files\WinZip\WINZIP32.EXE" -min -a -ex "C:\Documents and Settings\vipul\Desktop\worksheets.zip" files *.xls
copy worksheets.zip "C:\Documents and Settings\vipul\Desktop\My briefcase"
copy worksheets.zip "E:\Valuations\2009"
exit

Or, if just one that files can exist in some time:

@echo off
set filename=
if exists vipul.xls set filename=vipul
if exists sanj.xls  set filename=sanj
if exists lago.xls  set filename=lago
if "%filename%" == "" goto end
"C:\Program Files\WinZip\WINZIP32.EXE" -min -a -ex "C:\Documents and Settings\vipul\Desktop\%filename%.zip" files %filename%.xls
copy %filename%.zip "C:\Documents and Settings\vipul\Desktop\My briefcase"
copy %filename%.zip "E:\Valuations\2009"
exit
:end


Its not tested, but this should help you:

@echo off

REM check if supplied file name actaully exists
IF "%1"=="" GOTO END
IF NOT EXIST "%1" GOTO END

REM define output file name. Use supplied files name without extension and add ".zip"
SET OutputPath=C:\Documents and Settings\vipul\Desktop\%~n1.zip

"C:\Program Files\WinZip\WINZIP32.EXE" -min -a -ex "%OutputPath%" files "%1"
copy "%OutputPath%" "C:\Documents and Settings\vipul\Desktop\My briefcase"
copy "%OutputPath%" "E:\Valuations\2009"

:END

This batch uses the first command line parameter (%1) as input for the file to package and copy.

The first IF statements check if the file is valid. The SET command set a variable with the name of the file to create (the zip file). The remaining part is mainly the code you already have, but now uses the variables.

EDIT:

To call the batch programm, lets name it package.bat, use a syntax like this:

package "C:\Documents and Settings\vipul\Desktop\vipul.xls"

or

package "C:\Documents and Settings\vipul\Desktop\sanj.xls"

You can also use drag 'n drop and simply drop the file you want to process on the batch file package.bat to start it.

If it doesn't work, add a comment.

EDIT:

To use this batch file in your send to context menu do the following steps:

  1. save the above code in a file and name package.bat (or anything else you want)
  2. put in a location you want.
  3. create a link to the batch file package.bat (right click on the file, chose create link)
  4. move the created link file to your Send to folder (e.g. C:\Documents and Settings\vipul\SendTo
  5. now you can select any file you want and chose the batch file command from your context menu->send to

Hope that helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜