Visual SourceSafe - 使用批处理文件命令获取最新版本

时间:2013-10-10 14:10:16

标签: batch-file cmd environment-variables visual-sourcesafe visual-sourcesafe-2005

我正在尝试编写一个批处理文件,该文件将自动从SourceSafe获取 仅某些文件夹 的最新版本。

文件位置:

SourceSafe安装在我的C盘上:

C:\ Program Files(x86)\ Microsoft Visual SourceSafe

包含um.dat的users.txt和data文件夹位于网络上的共享中:

//服务器(为方便起见,我已将此文件夹映射到 X:

.BAT文件:

@echo off

REM SET ENVIRONMENT VARIABLE TO LOCATION OF SS.EXE
PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual SourceSafe

REM SET DIR TO THE DATA DIRECTORY I.E. LOCATION OF SRCSAFE.INI
SET SSDIR = X:

REM LOGIN DETAILS
SET SSUSER = Administrator
SET SSPWD = Password

REM SET THE CURRENT PROJECT
ss CP $/Development/Websites/MySite

REM GET LATEST FROM THESE FOLDERS (RECURSIVE)
ss Get $/App_Code -I -Y -R -W
ss Get $/App_Data -I -Y -R -W
ss Get $/Bin -I -Y -R -W
ss Get $/Images -I -Y -R -W
ss Get $/scripts -I -Y -R -W
ss Get $/styles -I -Y -R -W

pause

问题:

当我运行该文件时,我收到以下错误:

无效的DOS路径:C:\ Program Files(x86)\ Microsoft Visual SourceSafe \ data \ um.dat

当它应该在X驱动器中查看时,它似乎在我的C驱动器中寻找这些文件。我已经尝试将问题文件(um.dat和users.txt)从X驱动器移动到C驱动器上的该位置。然后批处理文件将运行,但我没有获得最新版本。

如果有人能帮我解决这个问题,我将非常感激!

2 个答案:

答案 0 :(得分:0)

最有可能的问题是,当您执行=时,您在set周围放置了空格。您正在创建一个环境变量SSDIR =,它与SSDIR=不同。

您可以通过在CMD窗口中执行以下操作来查看此内容:

C:\> set HELLO = this
C:\> set HELLO=that
C:\> set HELLO
HELLO=that
HELLO = this

两者都存在,因为环境变量的名称是最多等于的所有内容,包括等于之前的空格

Sourcesafe将寻找一个名为SSDIR的环境变量,而这不是您所设置的。

尝试更改相应的行,如下所示:

REM SET DIR TO THE DATA DIRECTORY I.E. LOCATION OF SRCSAFE.INI
SET SSDIR=X:

REM LOGIN DETAILS
SET SSUSER=Administrator
SET SSPWD=Password

答案 1 :(得分:0)

你可以尝试

ss Get $/Development/Websites/MySite/App_Code -I -Y -R -W

而不是

ss Get $/App_Code -I -Y -R -W