0

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

文件位置:

SourceSafe 安装在我的 C 盘上:

C:\Program 文件 (x86)\Microsoft Visual SourceSafe

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

//服务器(为方便起见,我已将此文件夹映射到驱动器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 驱动器上的该位置。然后批处理文件将运行,但我没有获得最新版本。

如果有人可以帮助我解决这个问题,我将不胜感激!

4

2 回答 2

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
于 2013-10-10T15:42:03.990 回答
0

你可以试试

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

代替

ss Get $/App_Code -I -Y -R -W
于 2017-03-27T08:34:26.357 回答