无法运行批处理文件。
SET startIN="D:\Documents and Settings\%USERNAME%\Desktop\DataXfer Helper\StartFolder"
SET collection="D:\Documents and Settings\%USERNAME%\Desktop\DataXfer Helper\StartFolder\*.zip"
FOR /F %%G IN (‘dir /b %collection%\*.zip’) DO “C:\Program Files\Winzip\wzunzip” –E %startIN%\%%G %startIN%
当我在命令提示符下键入行时 - 它工作正常(唯一的区别是在命令提示符下键入时我使用%G
而不是%%G
)。
因此,环境变量正在被正确创建 - 但是当我运行批处理时,单引号和E之前的连字符被转换为其他字符(无法识别它们是什么)。
那么,为什么运行批处理的任何想法都会改变字符?
谢谢。
答案 0 :(得分:0)
有几个问题:
FOR
行中的符号不支持ASCII字符。在命令行中重新键入'
,"
和-
以更正它们。%startIN%\%%G
将扩展为"D:\Documents and Settings\%USERNAME%\Desktop\DataXfer Helper\StartFolder"\MyFile.zip
。在处理路径时,请确保您的逻辑知道引号,这样它们就不会被困在结果的中间。尝试将脚本更新为:
REM Remove the quotes from the path.
REM Quotes will be added once we know the full path.
SET startIN=D:\Documents and Settings\%USERNAME%\Desktop\DataXfer Helper\StartFolder
REM Quote here because we know the full path.
SET collection="%startIN%\*.zip"
REM Update FOR loop to include parsing options and properly quote output.
REM Also update invalid ASCII chars.
FOR /F "usebackq tokens=* delims=" %%G IN (`dir /b %collection%`) DO "C:\Program Files\Winzip\wzunzip" -E "%startIN%\%%G" "%startIN%"