小编Ste*_*uan的帖子

如何两次扩展CMD shell变量(递归)

使用Windows XP CMD命令行,我可以将变量扩展两次,如下所示:

set AAA=BBB
set BBB=CCC
for /F "usebackq tokens=*" %i in (`echo %%AAA%%`) do echo %i
Run Code Online (Sandbox Code Playgroud)

会回应CCC.即AAA已经扩大到字符串BBB,然后变量BBB已经扩大到CCC.

这不适用于批处理脚本(即.cmd文件)内部.更改%%AAA%%为任何一个%%%AAA%%%%%%%AAA%%%%不起作用.

知道如何从脚本中实现这一点,即将变量AAA扩展到字符串CCC?

晚编辑

发布的答案适用于我的缩减示例,但非曲折的答案对真实案例不起作用.这是一个扩展示例(不起作用),它说明了我实际上要做的事情:

setlocal enabledelayedexpansion

set LIST=BBB CCC DDD
set BBB=111
set CCC=222
set DDD=333

for %%i in (%LIST%) do (

    for /F  %%a in ('echo %%%i%') do  echo !%%a!

)
Run Code Online (Sandbox Code Playgroud)

我想看看

111
222
333
Run Code Online (Sandbox Code Playgroud)

输出.

windows shell scripting cmd batch-file

12
推荐指数
3
解决办法
1万
查看次数

COLLATE DATABASE_DEFAULT agaisnt IN()子句

我在sproc中返回记录时遇到问题.没有抛出错误,但我认为来自一个服务器环境的数据在另一个服务器环境中混合不好.

set @shipedon =  YEAR(@shipdate) * 10000 + MONTH(@shipdate) * 100 + DAY(@shipdate)
Run Code Online (Sandbox Code Playgroud)

这有效:

SELECT   [ITEM_KEY],
         max([REVISION]) Rev
FROM     SERVER2.[BOMSystem].[dbo].[ITEM]
WHERE    ITEM_KEY collate DATABASE_DEFAULT in
         ('391000180', '391000189', '391000191', '391000201',
          '391000214', '391000215', '391000216', '391000226')
AND      DATE_EFF_FROM <= @shipedon 
GROUP BY ITEM_KEY
Run Code Online (Sandbox Code Playgroud)

显示8行,如:

391000180   0001
391000189   0001
391000191   0001
Run Code Online (Sandbox Code Playgroud)

这失败了:

SELECT   [ITEM_KEY],
         max([REVISION]) Rev
INTO     #rev
FROM     SERVER2.[BOMSystem].[dbo].[ITEM] 
WHERE    ITEM_KEY collate DATABASE_DEFAULT in (@items)                                                       
AND      DATE_EFF_FROM  <= @shipedon
GROUP BY ITEM_KEY

SELECT * from #rev shows no results.

SELECT @items = SUBSTRING( …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server collation

10
推荐指数
1
解决办法
6万
查看次数

如何使用sed查找模式?

如何使用合并多个过滤器sed

这是我的数据集

性别,城市,年龄
男性,伦敦32
男,曼彻斯特,32
男,牛津,64
女,牛津23
女,伦敦,33
男,牛津,45

我想确定所有包含“男性” 和“牛津”的行。这是我的方法:

sed -n '/male/,/oxford/p' file
Run Code Online (Sandbox Code Playgroud)

谢谢

unix command-line sed

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

batch-file ×1

cmd ×1

collation ×1

command-line ×1

scripting ×1

sed ×1

shell ×1

sql-server ×1

t-sql ×1

unix ×1

windows ×1