【发布时间】:2019-02-13 22:48:43
【问题描述】:
我对@987654321@ 在空白行上的开/关有疑问。我尝试了多种方法,包括 echo 变量等。
这是我当前使用的代码以及日志和在我使用脚本解析记录后的当前输出,其中一些记录是空白的,我希望保持空白。
当前代码
for /f "skip=%skipTo% tokens=1,* delims=]" %%a In ('type %InputFile% ^| find /v /n ""') do (
set ip=%%b
set ip=!ip:!
set test=!ip!
echo !ip!
echo(!test!
if "!test!" == [] (
!test! >> E:\EPM_Cloud\LoadFiles\BUD_PLN\Security\GROUPS_USERS_CURRENT_LIST.csv
) else (echo %%b >> E:\EPM_Cloud\LoadFiles\BUD_PLN\Security\GROUPS_USERS_CURRENT_LIST.csv)
)
当前输出(注意我需要保留当前有“ECHO is off”的3个空白行)
#group_children
id,group_id,group_provider,user_id,user_provider
BL_LEAD,,,TestUser_2,LDAP_Directory_Provider
BL_LEAD,,,angelo.vergura@nrc.gov,LDAP_Directory_Provider
ECHO is off.
ECHO is off.
ECHO is off.
#group_children
id,group_id,group_provider,user_id,user_provider
NON_BL_LEAD,,,Christopher.George@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,Lindsey.Heeszel@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,Safa.Kaleem@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,Susan.Orbach@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,Tung.Truong@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,angelo.vergura@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,arodriguez,LDAP_Directory_Provider
NON_BL_LEAD,,,camason@huronconsultinggroup.com,LDAP_Directory_Provider
NON_BL_LEAD,,,jeffrey.sheldon@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,larry.mason@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,mary.moshier@nrc.gov,LDAP_Directory_Provider
NON_BL_LEAD,,,sreekanth.manne@nrc.gov,LDAP_Directory_Provider
ECHO is off.
ECHO is off.
ECHO is off.
当前日志 - 执行此代码后(如您所见,这证明了为什么我在输出中得到它的空行?当没有空行时,您会得到结果,但它们没有显示在日志中
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
【问题讨论】:
-
你想做什么?抓取 csv 中的某段文本还是只删除空行?
-
如果变量 echoed 计算结果为空,您可以使用与通常空格不同的命令分隔符。有几种可能的字符都具有一个或另一个缺点。我的首选是冒号。
echo:%variable%这样可以避免输出回显状态。 -
没有像
/v /n ""') do (这样的命令,我不知道set ip=!ip:!应该做什么,"!test!"永远不能等于[],因为其中一个总是有双引号和另一个从来没有双引号。!test!是否应该解析为命令,或者您是否缺少Echo?至于你Echo的问题,你可以用echo(!ip!、echo=!ip!或echo/!ip!替换echo !ip!。 -
大家好,是的,只是试图保留 csv 平面文件中的空白行 - 但是当我抓取它们以及非空白行时 - 空白返回为“回声已关闭”
-
你为什么要开始另一个问题?
标签: windows shell batch-file operating-system