我在批处理文件中的命令方面遇到了问题del
。当执行到删除步骤时,我收到消息“访问被拒绝”。我的批处理命令如下所示。
set destPath=\\Public01\Appl\CompOps\Jobs\
robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS
pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd
我可以浏览目录并删除文件,没有任何问题Windows资源管理器。
我尝试以管理员身份运行,但问题仍然存在。
答案1
强制del
命令删除只读文件,添加标志/F
。
显然,只读文件通常不能通过批处理文件删除,但仍可以通过以下方式删除Windows资源管理器。要检查文件是否为只读,您可以右键单击文件并选择属性,或输入attrib <filename>
在命令提示符下。这将显示一系列对应于不同文件属性的字母。
R = Read-only file
A = Archive file
S = System file
H = Hidden file
您可以通过取消选中属性窗口中的框或运行命令来删除只读标签attrib <filename> -R
。
答案2
在尝试了“del”命令的可用选项后,我发现我试图删除的文件是只读的。要解决这个问题,我可以编辑文件以删除只读属性,或者指定 /F 选项。
最终脚本是
set destPath=\\Public01\Appl\CompOps\Jobs\
robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS
pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd
解决方案很简单,但错误消息具有误导性。希望这对其他人有所帮助。
答案3
适用于我的 Windows 8.1 PC 的操作:
首先通过以下方式关闭 Windows 资源管理器:
按Ctrl+ Alt+Del打开任务管理器,转到流程,查找Windows资源管理器,右键单击,然后结束任务。如果开始栏不见了或者出现其他问题,请不要担心。使用Alt+Tab可在文件之间移动。然后在任务管理器点击文件和运行新任务,然后输入cmd
。这将打开命令行。
在 - 的里面终端:
如果你的版本是 32 位的,那么它位于程序文件 (x86),因此您应该输入:
cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll
这是为了取消注册。
您可以使用 在目录之间移动cd directoryname
,也可以通过 返回一个目录cd ..
。要查看目录中的内容,您可以dir
在该目录中输入。要删除文件,请输入:
del /F filename
之后再次打开任务管理器, 去文件,然后运行explorer
。这样你就可以得到正常的显示。转到Git我们想要摆脱的文件夹,简单地删除它。
我希望这对其他使用 Windows 8.1 的人也有效。
答案4
遇到了这个问题,结果 Avast 拒绝了我的批处理文件。我所要做的就是将 .bat 文件添加到 Avast 的例外列表中。