Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何逃脱!在变量中';s值多少?_Windows_Batch File_Cmd_Escaping - Fatal编程技术网

Windows 如何逃脱!在变量中';s值多少?

Windows 如何逃脱!在变量中';s值多少?,windows,batch-file,cmd,escaping,Windows,Batch File,Cmd,Escaping,我怎样才能逃脱!延迟扩展中使用的变量PL值中的字符!PL!,这样它们就不会被解释为分隔符了 例如,在%%p包含!时修复此故障 FOR %%P IN (%input%\*.M3U) DO ( echo Processing playlist "%%P" SETLOCAL ENABLEDELAYEDEXPANSION FOR /F "tokens=*" %%L IN ('type "%%P"') DO ( SET PL=%%~pP%%L echo

我怎样才能逃脱!延迟扩展中使用的变量PL值中的字符!PL!,这样它们就不会被解释为分隔符了

例如,在%%p包含!时修复此故障

FOR %%P IN (%input%\*.M3U) DO (
    echo Processing playlist "%%P"

    SETLOCAL ENABLEDELAYEDEXPANSION
    FOR /F "tokens=*" %%L IN ('type "%%P"') DO (
      SET PL=%%~pP%%L
      echo  Processing reference "!PL!"
    )
  ENDLOCAL
)
编辑:Paul的有限适用性解决方案:

FOR %%P IN (%input%\*.M3U) DO (
    echo Processing playlist "%%P"

    FOR /F "tokens=*" %%L IN ('type "%%P"') DO (
      SET PL=%%~pP%%L
      SETLOCAL ENABLEDELAYEDEXPANSION
      echo  Processing reference "!PL!"
      ENDLOCAL
    )
)

我不知道如何搜索/替换
中!瓦尔
!myvar:^^!=!!
不起作用),但您可以显示
类似于变量:

@echo off
(
echo !!myfolder
echo myfi!es
echo !234
)>sample.txt
for /f %%a in (sample.txt) do (
  set "myvar=%%a"
  setlocal enabledelayedexpansion
  echo !myvar!
  endlocal
)
您可以对代码进行如下转置:

for %%p in (%input%\*.m3u) do (
    echo processing playlist "%%p"

    for /f "tokens=*" %%l in ('type "%%p"') do (
      set pl=%%~pp%%l
      setlocal enabledelayedexpansion
      echo  processing reference "!pl!"
      endlocal
    )
)

可能的副本只能用扩展百分比替换<代码>回显%myvar:=someThingElse%
@Paul感谢转置解决方案。很好。不过,有一个完整的解决方案还是有用的。感谢块重定向技术,这将有望改善我的未来,所以CMD问题:)