我正在尝试编写一个批处理文件,该文件将自动从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驱动器上的该位置。然后批处理文件将运行,但我没有获得最新版本。
如果有人能帮我解决这个问题,我将非常感激!
答案 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