我正在编写一个 C# 程序来解析 Connect:Direct 文件并从中提取源和目标信息。
我对大型机代码不是很流利。特别是,我试图了解目标 Windows 路径的语法。以下是我的解释,但我想填补一些漏洞,以便编写一个能够处理我可能遇到的任何有效语法变化的解析器。
反斜杠字符必须是转义字符,以便两个反斜杠代表一个。然而,串联操作,|| ,似乎在里面扔了一个活动扳手。我假设斜杠字符是行继续字符。引用的路径也在每一侧都用反斜杠括起来。我不确定这表明了什么。我猜这可能意味着封闭的字符串包含转义字符,表明两个反斜杠应该等于一个。
NDMHGM30 PROCESS SNODE=MYSNODE PACCT='G,HG1' -
&SUBS=SUBSYS(ESP2) -
&DMNDH=ESPM2D.DEMANDH -
&APPL=APPL(STHG102M.0)
STEP1 COPY FROM (PNODE DSN=GIO.HG1.CDB.ACCTEXT.T1(0) -
DISP=SHR) -
COMPRESS EXT -
TO (SNODE -
DSN=\'\\\\MyServerName\\IMDATA\\CLASS_SOURCE\\SYSTEM_INPUTS\ || -
\\\CDB\\ACCOUNT.TXT'\ -
SYSOPTS="STRIP.BLANKS(NO)" -
DISP=RPL)
IF ( STEP1=0 ) THEN
STEP1A RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;AJ USERREQ.GHG30GOD &APPL COMPLETE;END"))
ELSE
STEP1B RUN TASK (PGM=ESP, -
PARM=("&SUBS NOSTACK;TR &DMNDH USER1('GHG30BAD');END"))
EIF
到目前为止有什么错误的假设吗?
鉴于此,我希望上述路径无效,因为它将被解释为
\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\\CDB\ACCOUNT.TXT
换句话说,其中一个级别会有一个额外的反斜杠。但我知道 Connect Direct 可以正常工作并将路径正确解释为
\\MyServerName\IMDATA\CLASS_SOURCE\SYSTEM_INPUTS\CDB\ACCOUNT.TXT
连接运算符和/或续行如何影响此处所需的斜杠数量?还有哪些其他语法变量也可能有效,从而产生相同的有效 Windows 路径?