提前感谢您提供的任何帮助。
我有一个批处理文件,我想从哪个名称使用部件并将它们指定为变量。使用带有delims的for /f
我能够做类似的事情,但我必须将文件重命名为不同于我需要的方案。
这是我的所在:
- 当前文件名: WHID-PRT-MFP-3,NORTH EAST OFFICE.bat
SET getname=%~n0
for /f "tokens=1 delims=-" %%G IN ("%getname%") DO (SET siteid=%%G)
for /f "tokens=1 delims=," %%E IN ("%getname%") DO (SET name=%%E)
SET printername=%name%
SET servername=Server-%siteid%-01
好的,所以这似乎工作正常,我能够从文件名中获取我需要的部分,并将它们分配给变量,以便%name%=WHID-PRT-MFP-3
和%siteid%=WHID
现在我的困境是我需要文件名:NORTH EAST OFFICE, WHID-PRT-MFP-3.bat
所以我一直试图将逗号后面的整行(WHID-PRT-MFP-3
)变为变量,将破折号中的第一项(WHID
)变为另一个变量,与上面的例子相同,但是不能出来。这将与几个名称一起使用,因此不仅如所示示例我可以为这两个部分设置更短或更长的名称,例如:WHID-PRT-1, OFFICE 1
欢迎任何想法。
由于
答案 0 :(得分:1)
NORTH EAST OFFICE,WHID-PRT-MFP-3.bat:
SET getname=%~n0
rem split at comma
for /f "tokens=2 delims=," %%E IN ("%getname%") DO (
rem trim space after comma
for /f "tokens=*" %%S IN ("%%E") DO SET name=%%S
rem get word before hyphen and strip leading space
for /f "tokens=1 delims=- " %%S IN ("%%E") DO set siteid=%%S
)
SET printername=%name%
SET servername=Server-%siteid%-01
答案 1 :(得分:0)
for /f "tokens=1,2 delims=,." %%i in ("WHID-PRT-MFP-3, NORTH EAST OFFICE.bat") do set newname=%%j,%%i.bat