我有一个批处理文件,如下所示:
@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是我桌面上的文件,将被复制到我的公文包中,同样是ziiped,然后发送到E \ valu ...文件夹。 我想在这里改变如下: 每次文件名改变时,例如它可能是sanj.xls或lago.xls等。 (代替vipul.xls),我怎么能这样做? 就像在xp
中有printdir.bat文件一样答案 0 :(得分:0)
您可以将此批处理文件用于任何扩展名为.xls
的文件:
@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
或者,如果只有一个文件可以存在一段时间:
@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
答案 1 :(得分:0)
它没有经过测试,但这可以帮到你:
@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
此批处理使用第一个命令行参数(%1)作为要打包和复制的文件的输入。
第一个IF
语句检查文件是否有效。 SET
命令设置一个变量,其中包含要创建的文件的名称(zip文件)。剩下的部分主要是你已经拥有的代码,但现在使用变量。
编辑:
要调用批处理程序,请将其命名为package.bat
,使用如下语法:
package "C:\Documents and Settings\vipul\Desktop\vipul.xls"
或
package "C:\Documents and Settings\vipul\Desktop\sanj.xls"
您也可以使用拖放功能直接删除要在批处理文件package.bat
上处理的文件来启动它。
如果不起作用,请添加评论。
修改强>
要在发送到上下文菜单中使用此批处理文件,请执行以下步骤:
C:\Documents and Settings\vipul\SendTo
希望有所帮助。