我在这里搜索了一段时间,但找不到有效的解决方案。
我正在尝试运行以下(test.bat):
SET CURRENT_DATE=%date:~6,4%_%date:~3,2%_%date:~0,2%
SET DOCSRC = "C:\scripts\e2Vault\docdata"
SET DOCSTAGING = "C:\Scripts\e2Vault\staging"
SET LOGFILE = "C:\Scripts\e2Vault\log files"
SET DOCPROCESS = "C:\scripts\e2Vault\process"
SET DOCREMOVED = "C:\scripts\e2Vault\removed"
forfiles /p "%DOCSRC%" /m *.drd /d -547 /c "cmd /c echo @path && Move @file "%DOCSTAGING%"" >> %LOGFILE%\e2Vault_archive_%CURRENT_DATE%.log
但它在不移动文件或记录的情况下给了我以下输出:
C:\scripts\e2Vault>forfiles /p "" /m *.drd /d -547 /c "cmd /c echo @path && Move @file """ 1>>\e2Vault_archive_2012_06_19.log
ERROR: Value for '/p' option cannot be empty.
Type "FORFILES /?" for usage.
我曾尝试在各种配置中使用“””和“\”,但我尝试的每一个都只显示变量应该在哪里的引号。
正如您可能看到的那样,我正在对此进行测试,但是变量的实时系统路径中有空格,所以我需要让它工作。
如果我不使用 SET 变量并放入绝对路径,脚本就可以工作。
真的希望有人能指出我做错了什么!