您好我正在寻找一个批处理文件来检查给定文件夹中是否有任何类型的文件.
到目前为止,我已尝试过以下内容
if EXIST FOLDERNAME\\*.* ( echo Files Exist ) ELSE ( echo "Empty" )
Run Code Online (Sandbox Code Playgroud)
如果我知道文件扩展名,如下面的txt文件,我可以让它工作
if EXIST FOLDERNAME\\*.txt ( echo Files Exist ) ELSE ( echo "Empty" )
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
假设我们想要使用以下命令在Windows中创建一个空文件:
type nul > C:\does\not\exist\file.txt
Run Code Online (Sandbox Code Playgroud)
目录不存在,所以我们得到错误:
The system cannot find the path specified
Run Code Online (Sandbox Code Playgroud)
如果你打印%errorlevel%输出是:
echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)
但命令没有成功!
我注意到,%errorlevel%如果你使用重定向,窗口不会设置最后一个命令.
有没有解决的办法?
假设我有一个用于执行长版本的批处理文件,最后它创建了一个EXE.如果我在开始构建之前忘记关闭应用程序,则链接阶段会在无法重新创建EXE时失败.
我想检查EXE是否在构建开始时打开.我尝试将EXE文件重命名为自身,但是虽然这给出了拒绝访问错误,但重命名命令(作为内部命令)不会设置%ErrorLevel%.
检查将%ErrorLevel%设置为非零值的打开文件的非破坏性方法是什么?
如何检查执行用户是否可以从批处理脚本写入目录?
这是我到目前为止所尝试的:
> cd "%PROGRAMFILES%"
> echo. > foo
Access is denied.
> echo %ERRORLEVEL%
0
Run Code Online (Sandbox Code Playgroud)
好的,那怎么样......
> copy NUL > foo
Access is denied.
> echo %ERRORLEVEL%
0
Run Code Online (Sandbox Code Playgroud)
不是吗?那怎么样......
> copy foo bar
Access is denied.
0 file(s) copied.
> echo %ERRORLEVEL%
1
Run Code Online (Sandbox Code Playgroud)
这有效,但如果文件不存在则会中断.
我已经阅读了一些关于内部命令但没有设置ERRORLEVEL的内容,但copy显然在最后一种情况下这样做了.
我有几个不同的进程,我希望他们都登录到同一个文件.这些进程在Windows 7系统上运行.一些是python脚本,另一些是cmd批处理文件.
在Unix下,你只需让所有人以附加模式打开文件并写下来.只要每个进程PIPE_BUF在单个消息中写入少于字节,每个write调用将保证不与任何其他消息交错.
有没有办法在Windows下实现这一目标?天真的类Unix方法失败了,因为Windows不喜欢默认情况下一次打开文件的多个进程.
batch-file ×6
windows ×5
cmd ×1
directory ×1
errorlevel ×1
file ×1
locking ×1
logging ×1
permissions ×1
python ×1
rename ×1
writable ×1