批处理对文件被占用没有一个切实可行的解决办法么
1个回答
展开全部
可以通过重命名的返回结果判断是否被锁定
以下是一个简单的示例代码,你可以试试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
goto :lockChk
:unlock
echo 未锁定部分处理
pause
exit
:lockChk
rem 通过重命名的方式判断是否被锁定
set oldName=a.txt
set newName=b.txt
ren %oldName% %newName% 1>nul 2>nul
if %errorlevel% neq 0 (
echo 锁定中
goto :lockChk
) else (
ren %newName% %oldName% 1>nul 2>nul
goto :unlock
)
追问
思路很好,但我操作的时候遇到一些问题,希望你再帮我解答下
set oldName=a.txt
set newName=b.txt
这里的a.txt是指当前目录下的一个文件吗?
好像我不管怎么写,都是提示“锁定中”
还有一个问题是,如何遍历当前目录下的带数字的子目录(仅遍历一层目录即可),也是一个循环,但不是死循环
以下是一个简单的示例代码,你可以试试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
goto :lockChk
:unlock
echo 未锁定部分处理
pause
exit
:lockChk
rem 通过重命名的方式判断是否被锁定
set oldName=a.txt
set newName=b.txt
ren %oldName% %newName% 1>nul 2>nul
if %errorlevel% neq 0 (
echo 锁定中
goto :lockChk
) else (
ren %newName% %oldName% 1>nul 2>nul
goto :unlock
)
追问
思路很好,但我操作的时候遇到一些问题,希望你再帮我解答下
set oldName=a.txt
set newName=b.txt
这里的a.txt是指当前目录下的一个文件吗?
好像我不管怎么写,都是提示“锁定中”
还有一个问题是,如何遍历当前目录下的带数字的子目录(仅遍历一层目录即可),也是一个循环,但不是死循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询