String 在批处理中使用变量切片字符串

String 在批处理中使用变量切片字符串,string,batch-file,variables,slice,String,Batch File,Variables,Slice,所以我想要一个这样的程序: Enter number: 5 Giving first 5 characters of string "apple pie"... apple 我试过这样的东西 set characters=5 set "string=apple pie" set string=%string:~0, %characters%% 但它不起作用,知道为什么吗?要么重写 set string=%string:~0, %characters%% 作为 或者使用延迟扩展 @ech

所以我想要一个这样的程序:

Enter number: 
5
Giving first 5 characters of string "apple pie"...
apple
我试过这样的东西

set characters=5
set "string=apple pie"

set string=%string:~0, %characters%%
但它不起作用,知道为什么吗?

要么重写

set string=%string:~0, %characters%%
作为

或者使用延迟扩展

@echo off
set characters=5
set "string=apple pie"

setlocal enabledelayedexpansion
set "string=!string:~0, %characters%!"
echo %string%
请参见

重写或

set string=%string:~0, %characters%%
作为

或者使用延迟扩展

@echo off
set characters=5
set "string=apple pie"

setlocal enabledelayedexpansion
set "string=!string:~0, %characters%!"
echo %string%

谢谢!这很有效,我确实尝试过使用延迟扩展,但我无法理解感叹号。我知道引用的链接没有提到使用
!此:~0%,组合%,但只是延迟了扩展。尽管主题不同(数组),但请参见准确描述此管理的内容。谢谢!这很有效,我确实尝试过使用延迟扩展,但我无法理解感叹号。我知道引用的链接没有提到使用
!此:~0%,组合%,但只是延迟了扩展。尽管主题不同(数组),但请参见准确描述此管理的部分。