批处理文件:输入条形码字符串替换
我使用批处理脚本,我有一个这样的输入变量:批处理文件:输入条形码字符串替换
~zon|123456789~~zln|12~
输入后,我得到这个消息:“|在这个时候意外的。”
我应该如何使用字符串替换有如下的输出结果:
123456789-12
我试着用这一个,但它不工作。 使用日期格式是好的,但。 你有什么想法吗?
set path=~zon|123456789~~zln|12~
echo the variable is "%path:~4,8%"
pause
输出:
C:>设定路径=〜ZON | 123456789 ~~ ZLN | 12〜
'23897975 ~~万' 不被识别为内部或外部的命令, 可操作的程序或批处理文件。
因为|
是一个重定向命令,并且比设置的prio更高 - 所以你必须使用像下面的引号。 由于存在这样的Windows环境变量,因此设置名称为path
的变量并不是个好主意。您可以使用由~
和|
分割字符串:
set "p=~zon|123456789~~zln|12~"
for /f "tokens=2 delims=|~" %%a in ("%p%") do echo %%a
与子字符串:
echo "%p:~5,9%"
编辑:
得到其他两个数字:
set "p=~zon|EightDigits~~zln|OneOrTwoDigits~"
for /f "tokens=2,4 delims=|~" %%a in ("%p%") do echo %%a-%%b
set "p=~zon|123456789~~zln|12~"
for /f "tokens=2,4 delims=|~" %%a in ("%p%") do echo %%a-%%b
符号化是这样的:
~zon|123456789~~zln|12~
# 1 # 2 ## 3 #4 #
#
=定界符;连续的分隔符被视为一个。如果第一个字符是分隔符,它将被忽略。
工作正常!谢谢。我有另一个。 我应该如何传递字符串%% a - %% b来执行下面的IF语句? IF %%一个 - %% b EQU无( ((ECHO)和ECHO你不应该让它空)(ECHO)暂停和GOTO:!菜单 ) ELSE (@ ECHO %% a - %% b%日期:〜4,2%/%日期:〜7,2%/%日期:〜10,4%_%时间:〜0.2%:%时间:〜3.2%: %time:〜6,2%>> C:\ tokenized.txt ) – virtualixer
生成的字符串至少是破折号 - 因为我们明确添加了该字符串。所以测试'如果“%% a - %% b”==“ - ”回显空输入“ – Stephan
它只是绕过整个IF语句行当我尝试。有什么想法吗? – virtualixer
太好了。当前输出为123456789. 有些情况下可能是一位或两位数的“12”。 我应该如何写才能得到这个输出? 123456789-12(“ - ”后的后两位数字) 123456789-8(在“ - ”后面的最后一位数) – virtualixer
条形码的格式是〜zon | EightDigits ~~ zln | OneOrTwoDigits〜 – virtualixer
@virtualixer - 检查我的编辑。 – npocmaka