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
Batch file forfile和AD主文件夹不起作用_Batch File - Fatal编程技术网

Batch file forfile和AD主文件夹不起作用

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

我们有一个大约80个用户的active directory

我现在想做的是在每个userfolder中放置一个脚本,用户可以自己运行,并在同一个文件夹中创建一个日志文件,其中包含5天以上的文件

每个用户的homefolder在windows中映射为驱动器,并映射为字母h 现在我有这个:

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
之后关闭双引号;我告诉过你移动它,而不是移除它!