![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 05:58 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » for中的awk FS问题 |
| 可打印版本 809 / 3 |
| 第1楼 pillow | 发表于 2007-10-25 10:48 |
| 初级用户 发帖 82 积分 196 | |
|
for中的awk FS问题 原目的是希望將AD中4周未登陸賬號導出來,並去掉多餘信息,控制輸出格式。
使用命令如下: for /F "tokens=*" %i in ('dsquery user "LDAP path ou" -inactive 4 ^| gawk "BEGIN{ FS=\"\"; print \"UserName\"} {print $2}"') do echo %i ()中的部分: dsquery user "LDAP path ou" -inactive 4 | gawk "BEGIN{ FS=\"\"; print \"UserName\"} {print $2}" 可以產生正確的需處理文本 "LDAP path ou"代表account所在的OU,當不加AWK部分時,輸出是我所需要的,即如下形式: "CN=Jaks Sen(張三_London),LDAP path ou" 需求是將=和(中間的部分 Jaks Sen 取出,且改為Jaks_Sen。 但實際執行時的結果卻只有Sen這部分,即 FS=\"\" 這部分並未生效。 請教是否AWK放進FOR之後,還有什麼需要注意的地方? [ Last edited by pillow on 2007-10-25 at 11:01 AM ] |
|
| 第2楼 zhclsy | 发表于 2007-10-25 11:32 |
| 初级用户 发帖 34 积分 83 | |
|
回家测试一下!呵呵。
|
|
| 第3楼 pillow | 发表于 2007-10-25 11:39 |
| 初级用户 发帖 82 积分 196 | |
|
但實際執行時的結果卻只有Sen這部分,即 FS=\"[=(,]\" 這部分並未生效。
对这句纠正一下,不能说完全未生效,因为从结果来看是在以(和空格为分隔符,而不是= ( ,这三个 |
|
| 第4楼 pillow | 发表于 2007-10-26 14:37 |
| 初级用户 发帖 82 积分 196 | |
|
若我把这一段生成的txt文件做为fileset让for执行,就能得到我需要的东西。
真想不通…… ('dsquery user "LDAP path ou" -inactive 4 ^| gawk "BEGIN{ FS=\"[=(,]\"; print \"UserName\"} {print $2}"') |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |