Batch file unixshell脚本的Windows等价物
首先,请原谅我对windows批处理脚本(甚至是基本脚本)缺乏了解 我想寻求有关Unix脚本的帮助。这是我的工作脚本Batch file unixshell脚本的Windows等价物,batch-file,unix,windows-scripting,Batch File,Unix,Windows Scripting,首先,请原谅我对windows批处理脚本(甚至是基本脚本)缺乏了解 我想寻求有关Unix脚本的帮助。这是我的工作脚本 #!/bin/bash list=`cat view_tags` for i in $list; do cleartool lsview -l -prop -full $i | grep "Last accessed" >& /dev/null if [ $? -eq 0 ]; then echo -n $i ec
#!/bin/bash
list=`cat view_tags`
for i in $list; do
cleartool lsview -l -prop -full $i | grep "Last accessed" >& /dev/null
if [ $? -eq 0 ]; then
echo -n $i
echo " " `cleartool lsview -reg ccase_win -l -prop -full $i | grep "Last accessed" | awk '{print $3}'`
else
echo $i cannot be found
fi
done
pompei.s1272.hwdig_b12.default
dincsori.arisumf.s2637b_dig.default
tags2
2017-11-05T11:32:13+01:00
2013-11-20T16:16:50+01:00
cleartool: Error: No matching entries found for view tag "tags2".
tags2 cannot be found
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /f "delims=" %%A in ('Type view_tags') do (
Set "Out=%%A can nnot be found"
For /f "tokens=3" %%B in (
'cleartool lsview -reg ccase_win -l -prop -full %%A ^| Find "Last accessed" 2^>Nul '
) Do Set "Out=%%B"
Echo !Out!
)
- /f的第一个
将迭代输入文件
- 第二个将解析cleartool的输出,得到每行的第三个空格分隔字符串
- /f的第一个
将迭代输入文件
- 第二个将解析cleartool的输出,得到每行的第三个空格分隔字符串
以下批处理脚本将处理您发布的“查看标签”输入: 应该给出以下输出(尽管我无法测试): 如果使用以下方法,我可以消除其中一个FOR/F循环:
cleartool lsview在windows系统上可用吗?有什么视图标签的示例吗?如果不是所有东西都可用,那么很难尝试和复制某些东西。请编辑问题并添加示例数据,例如视图标签,以及在最后访问的部分上使用echo时输出的样子Hello,是的,它是可用的。我们正在运行Clearcase版本8.0.1.11:)您是坚持使用Windows批处理等效程序(这需要使用附加工具,等效于bash脚本中的二进制命令),还是可以接受PowerShell解决方案(考虑到您似乎希望用bash脚本完成的任务,这实际上要简单得多)?(在我看来,您想从文件中获取文件列表,并打印每个文件的文件名和上次访问时间,对吗?)cleartool lsview在windows系统上可用吗?有什么视图标签的示例吗?如果不是所有东西都可用,那么很难尝试和复制某些东西。请编辑问题并添加示例数据,例如视图标签,以及在最后访问的部分上使用echo时输出的样子Hello,是的,它是可用的。我们正在运行Clearcase版本8.0.1.11:)您是坚持使用Windows批处理等效程序(这需要使用附加工具,等效于bash脚本中的二进制命令),还是可以接受PowerShell解决方案(考虑到您似乎希望用bash脚本完成的任务,这实际上要简单得多)?(在我看来,您希望从文件中获取文件列表,并打印每个文件的文件名和上次访问时间,对吗?)
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /f "delims=" %%A in ('Type view_tags') do (
Set "Out=%%A can nnot be found"
For /f "tokens=3" %%B in (
'cleartool lsview -reg ccase_win -l -prop -full %%A ^| Find "Last accessed" 2^>Nul '
) Do Set "Out=%%B"
Echo !Out!
)
@echo off
for /f "delims=" %%A in (view_tags) do (
for /f "tokens=3" %%B in (
'cleartool lsview -reg ccase_win -l -prop -full "%%A" 2^>nul ^| find "Last accessed"'
) do echo %%A: %%B
) || echo %%A: Not Found
pompei.s1272.hwdig_b12.default: 2017-11-05T11:32:13+01:00
dincsori.arisumf.s2637b_dig.default: 2013-11-20T16:16:50+01:00
tags2: Not Found
@echo off
for /f "usebackq delims=" %%A in ("view_tags") do ^
cleartool lsview -l -prop -full "%%A" 2>nul | ^
jrepl "Last accessed (\S+)" "$txt='%%A: '+$1" /jmatchq || echo %%A: Not Found