以下批处理文件接受一个路径和文件名参数。
SET filename=!filename:/=\!
当作为参数接收时,文件名将始终使用正斜杠进行格式化。 为了用反斜杠替换正斜杠,我尝试了这个:
Configuration
但那不起作用。 在Windows批处理文件中进行字符串替换的最简单方法是什么?
由于
答案 0 :(得分:1)
首先,您需要删除=
之后的空格:
SET filename=%~1
否则空格将成为变量的一部分。
要替换/用\,您必须使用%
而不是!
:
SET filename=!filename:/=\!
此外,您的代码中没有任何内容需要ENABLEEXTENSIONS
,因此您可以跳过它。
编辑:
这是我的something.bat代码:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET file=%~1
SET file=!file:\=/!
ECHO !file!
调用something.bat ABC/DEF/GHI
会导致输出ABC\DEF\GHI
。
答案 1 :(得分:1)
设置变量
时出现问题 v...v. Initial and ending spaces included in value
SET filename = %~1
^........ Space included in variable name
由于变量不是%filename%
,而是%filename %
,因此您的替换失败。对于字符串替换方法,您可以使用
@echo off
setlocal enableextensions disabledelayedexpansion
set "filename=%~1"
set "filename=%filename:/=\%"
echo %filename%
或更好的是,这种情况可以使用参数修饰符来解决
@echo off
setlocal enableextensions disabledelayedexpansion
set "filename=%~f1"
echo %filename%