我还没有发现任何像这样的问题。正如标题所说,下面的代码在命令提示符下完美执行,但作为批处理文件运行时则不行。只有最后一个重命名项未执行。批处理文件和直接命令均以非管理员身份运行。
powershell.exe -command "& {remove-item '%APPDATA%\...\*.old' -force; remove-item '%LOCALAPPDATA%\...\2*\*.old' -force; rename-item '%APPDATA%\...\file.xml' -NewName 'file.xml.old' -force; rename-item '%LOCALAPPDATA%\...\2*\user.config' -NewName 'user.config.old' -force;}"
另外,我在使用 DOS 命令时遇到通配符问题后,使用了此方法。我愿意听取任何建议,以使最后一个命令行正常工作。提前致谢。
编辑:在批处理文件中添加了暂停,发现在作为批处理文件运行时路径被视为无效。为什么这与直接命令不同?假设有一些转义字符我遗漏了,但不确定是什么。
答案1
在将 get-childitem 管道传输到 rename-item 后,此方法有效。仍不确定第一个 rename-item 为何有效,似乎是在批处理文件中运行时路径中的通配符存在问题。