Batch file forfile和AD主文件夹不起作用
我们有一个大约80个用户的active directory 我现在想做的是在每个userfolder中放置一个脚本,用户可以自己运行,并在同一个文件夹中创建一个日志文件,其中包含5天以上的文件 每个用户的homefolder在windows中映射为驱动器,并映射为字母h 现在我有这个:Batch file forfile和AD主文件夹不起作用,batch-file,Batch File,我们有一个大约80个用户的active directory 我现在想做的是在每个userfolder中放置一个脚本,用户可以自己运行,并在同一个文件夹中创建一个日志文件,其中包含5天以上的文件 每个用户的homefolder在windows中映射为驱动器,并映射为字母h 现在我有这个: forfiles -p "%cd%" -s -m *.* /D -5 /C "cmd /c echo @path >> %cd%\log.txt" 但这让我犯了这个错误 H:\>forfile
forfiles -p "%cd%" -s -m *.* /D -5 /C "cmd /c echo @path >> %cd%\log.txt"
但这让我犯了这个错误
H:\>forfiles -p "H:\" -s -m *.* /D -5 /C "cmd /c echo @path >> H:\\log.txt"
ERROR: Invalid argument/option - '@path'.
有什么办法解决这个问题吗
如果我使用测试文件夹在本地pc上运行,效果会很好。当涉及到关闭双引号时,如果在重定向之前将其移动到,肯定会更有意义,将其更改为
,而不是
解决问题的方法是,当您使用/p
选项时,不能对其进行双引号引用,也不能包含尾随反斜杠(一个或另一个)
我的理解是反斜杠是在逃避双引号。
因为驱动器往往需要一个尾随的反斜杠,所以您所要做的就是删除它周围的双引号(无论如何都不需要双引号,因为驱动器不包含空格)
另外,请记住,正如我在评论中已经推断的那样,
ForFiles
默认情况下已经使用当前目录,因此完全删除它更容易。在命令提示下输入ForFiles/?
时,您是否阅读了ForFiles
使用信息?你也试过移动结束双引号吗?是的,试过这两种方法。在不使用h驱动器的电脑上,主文件夹不工作请尝试使用-p“h:\\”
;我相信,forfiles
在指定-p“H:\”
时正在逃避关闭“
…现在可以使用这行代码了:forfiles-p H:\-s-m./D-5/C”cmd/C echo@path>log.txt,但它不在子目录中查找,但-s是用于该行的,对吗?我该如何解决这个问题呢?但是它会在子目录中创建日志文件,而不是在主目录中,我希望在主目录中删除所有需要删除的文件logfile@Klaas,您需要在@path
之后关闭双引号;我告诉过你移动它,而不是移除它!