如何用批处理创建文件夹检测文件夹是否打开?24小时检测

如何检测当前批处理是否以管理员身份运行?_批处理吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9,151贴子:
如何检测当前批处理是否以管理员身份运行?收藏
用过Vista或是win7的人应该对 “UAC”机制有一定的了解,这是微软为提高系统安全性而引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员‌密码。通过在这些操作启动前对其进行验证,UAC 可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改。 现在我遇到了一个问题:批处理中有部分命令需要管理员身份才能执行,我不想用户等到命令执行失败,被告知需要管理员身份时才想起要以管理员身份运行,那样会浪费很多时间。 我希望能够有办法检测批处理是否以管理员身份运行,从而在第一时间就告知用户。又或者批处理一被执行的时候,就立即向用户请求管理员权限,从而解决这个问题。 求各位高手帮忙想想办法,或者是提供一些这方面的资料,谢谢。
变量UserName就是当前登录的用户名,你可以拿这个检测啊...
不过貌似UAC这样不行啊......?
怎么检测?不是用户是不是管理员的问题,即使当前用户是管理员,他不以管理员身份运行批处理,批处理照样没有管理员权限。
我想起来了,所以才有了3L.
额,谢谢……另外,继续求助。
找了好久,只找到一个在Vista下改注册表禁用UAC的,而且还不知道这段命令本身会不会触发UAC…… 代码:reg ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
没接触过,不知道
方法1:向system32写入临时文件成功表示管理员方法2:获取自身title 管理权权限的title是“管理员:xxxxx”
感谢您的帮助,那个,怎么获取自身的title?用什么命令?
参考命令:tasklist /fi举个例子,比如:我设定自身title为xxxtasklist /fi "IMAGENAME eq xxx"|findstr /i "没有运行" 判定也可以用wmic get获取
用方法1实现了,代码如下: OFF
set TempFile_Name=%SystemRoot%\System32\BatTestUACin_SysRt%Random%.batempecho %TempFile_Name%( echo "BAT Test UAC in Temp" &%TempFile_Name% ) 1&nul 2&nul
if exist %TempFile_Name% (
echo 正在以管理员身份运行当前批处理
echo 没有以管理员身份运行当前批处理
Rem type %TempFile_Name%
del %TempFile_Name% 1&nul 2&nul
echo 按空格键退出……pause &nul
方法2不行,即使以管理员身份运行批处理,标题前方也不会有“管理员”提示出现。但是以管理员身份运行命令提示符的话,标题上会提示管理员:
批处理使用title 命令设置个titletitle 测试
用title设置标题后,前方的确出现了管理员,不过用您给的命令运行效果好像没有什么不一样。不知道是不是我的参数用错了,还请您看看:
额windowstitle 晕了,直接拿我的程序复制忘了改了
举个例子title s然后tasklist /fi "WINDOWTITLE eq 管理员:
嗯,设置成BAT后查找判断出来了,如下图:
但是查找 “ 管理员: s ” 却不行,不知道是不是冒号“ :” 或是空格的问题:
用的是英文冒号 " : " ,不是中文的
擦,用 tasklist /v & task.txt 看出问题来了,管理员:后面跟了两个空格,不是一个。所以应该是:管理员:'空格''空格's度娘吞空格啊…………附图:
嗯,感谢您的帮助!
多来批处理吧参与就是对我的支持~O(∩_∩)O
一定,不过我的水平不高,可能帮不上忙 O(∩_∩)O
以窗口标题判定是否以管理员运行,通过截取tasklist命令的输出,判断其中是否包含cmd.exe 来确定是否以管理员身份运行,代码如下: @echo.title BATsetlocal EnableDELAYEDEXPANSIONset UAC=0
For /f "usebackq delims==" %%i In (`tasklist /fi "WINDOWTITLE eq 管理员:
BAT"`) Do (
set "cmdline=%%i"
set "cmdline=!cmdline:~0,7!"
if "!cmdline!" == "cmd.exe" (
if "%UAC%" == "1"
echo 正在以管理员身份运行当前批处理
echo 没有以管理员身份运行当前批处理
(`tasklist /fi "WINDOWTITLE eq 管理员: BAT"`)管理员:后面跟的是两个空格,发帖的时候可能被吞了一个,请大家注意………… 此方法的不足之处:1.需要外部命令tasklist的支持2.如果在此批处理之前,已有同标题批处理以管理员身份运行,则仍然会判断为正在以管理员身份运行。
可以用比如fsutil命令测试一下
fsutil&nul
if errorlevel 1 echo 没有管理员权限
嗯,利用需要管理员权限命令的返回值来判断是否具有管理员权限,也是个不错办法,相对简单而且不需要生成额外的文件。但是需要认真评估命令执行结果对系统的影响。这个命令我试了一下,直接运行只会显示帮助信息,应该不会有额外的影响。
学习了。确实要注意(`tasklist /fi "WINDOWTITLE eq 管理员: BAT"`)管理员:后面跟的是两个空格,发帖的时候可能被吞了一个,请大家注意…………否则都显示:没有以管理员身份运行当前批处理
登录百度帐号推荐应用跪求高手!批处理实时检测新文件,并对文件设置权限!!!!!!_批处理吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9,151贴子:
跪求高手!批处理实时检测新文件,并对文件设置权限!!!!!!收藏
scan文件夹下面有扫描仪自动生成的图片文件,文件名会依次增加数字。比如:hppscan2.jpg,hppscan3.jpg,hppscan4.jpg......................hppscan9.jpg这些文件是由扫描软件生成的,比较纠结的是,软件生成的文件权限都不按照文件夹的权限来继承,而是单独的权限。比如:scan我设置了Everyone 的读取权限。但是,hppscan2.jpg却继承不到文件夹的权限,需要手动设置一下。所以我想是否能做一个批处理,一直运行着,当检测到有新文件被生成后,对新文件设置我需要的权限。肯定各路高手帮忙支支招!!!
用if判断是否有新文件然后设置权限
权限?不是属性吗?巨龙巨龙你擦亮眼永永远远擦亮眼
遥远的东方有一条龙,他的名字就叫中国( =∩ω∩= )
好吧我忘了权限,我想想办法吧
登录百度帐号推荐应用[分享]批处理判断是文件还是文件夹的几种方法 - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子1348&积分5084&技术109 &捐助501 &注册时间&
[分享]批处理判断是文件还是文件夹的几种方法
  很多时候,我们需要对某个路径进行判断:这到底是文件的路径还是文件夹的路径?可以用以下几种方法:
  1、直接检测法:如果是文件夹,则 test 和 test\ 、test\. 、test\nul 是等同的;如果是文件,则test不等同于三者中的任何一个,利用这个原理,可以轻松地用 if exist 语句来检测。@echo off
if exist test\ (echo test 是文件夹) else echo test 是文件
pause复制代码@echo off
if exist test\. (echo test 是文件夹) else echo test 是文件
pause复制代码@echo off
if exist test\nul (echo test 是文件夹) else echo test 是文件
pause复制代码  2、跳转法:如果是文件夹,将能正确执行跳转命令;如果是文件,执行跳转命令时将发生错误。@echo off
cd /d test && (echo test 是文件夹) else echo test 是文件
pause复制代码@echo off
popd test && (echo test 是文件夹) else echo test 是文件
pause复制代码  3、属性检测法:用 for 语句中的 %%~ai 扩展来检测文件的属性,如果是文件夹,则会显示 d 属性;如果是文件,不显示 d 属性;另外一种方法:把 dir /a-d 语句放到for语句中,通过检测for语句是否有输出来确定是文件还是文件夹。@echo off
setlocal enabledelayedexpansion
for %%i in (test) do (
& & set str=%%~ai
& & if &!str:~0,1!&==&d& (echo %%i 是文件夹) else echo %%i 是文件
)
pause复制代码@echo off
set str=
for /f &delims=& %%i in ('dir /a-d /b test 2^&nul') do set str=%%i
if defined str (echo test 是文件) else echo test 是文件夹
pause复制代码  是否还有其他方法,请大家讨论。
——————————————————————————————————
  随风在2楼提供了一种简洁的方法(这种方法的使用需要注意 && 和 || 的位置。还可以用 dir /a-d 的格式,请各位自行测试):@echo off
dir/ad test &nul 2&nul&&echo test 是文件夹||echo test 是文件
pause复制代码
  4、创建虚拟盘法:如果是文件夹,将能创建虚拟盘符;如果是文件,将无法创建虚拟盘;( 随风 提供)
@echo off
subst 1: test &nul 2&nul&&(echo test 是文件夹&subst 1: /d)||echo test 是文件
pause复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。
心在天山,身老沧州。
帖子1759&积分5354&技术40 &捐助210 &注册时间&
@echo off
dir/ad test &nul 2&nul&&echo test 是文件夹||echo test 是文件
pause复制代码
技术问题请到论坛发帖求助!
帖子1348&积分5084&技术109 &捐助501 &注册时间&
  呵呵,单独用 dir 来检测更简洁,我放到for语句中就显得累赘了。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。
心在天山,身老沧州。
帖子1759&积分5354&技术40 &捐助210 &注册时间&
@echo off
subst 1: test &nul 2&nul&&(echo test 是文件夹&subst 1: /d)||echo test 是文件
pause复制代码
技术问题请到论坛发帖求助!
帖子4&积分169&技术0 &捐助0 &注册时间&
帖子52&积分324&技术3 &捐助0 &注册时间&
@echo off
(rd test 2&&1|findstr &无效&)&nul&&echo 文件||echo 文件夹
md test 2&nul
pause复制代码
静水流深...
帖子1348&积分5084&技术109 &捐助501 &注册时间&
  通过删除文件夹的方式来判断是文件还是文件夹,有很大的局限:如果是文件夹,必须是空的,如果文件夹不为空,就不正确了。不过还是可以作为一种思路。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。
心在天山,身老沧州。
帖子36&积分49&技术5 &捐助0 &注册时间&
::直接拖入文件即可
@echo off
title 参数鉴定&&正确率:98%%
set file=%*
setlocal enabledelayedexpansion
for %%a in (!file!) do (
if &%%~nxa& equ &%%~a& (echo &%%~a&&&是一个参数) else (
&&%%~nxa0|find/i &.& &nul&&set bg=1
&&if not exist %%~sa (
& &echo.&%%~a&&&无法读取路径
&&)
&&if not defined bg (echo.&%%~a&&&是标准的文件夹) else (
& &set bg=&nul
& &for /f &delims= useback& %%b in (&%%~a&) do (
& & if not defined %%b (
& &&&set res=1
& & )
& &)
& &if defined res (echo.&%%~a&&&是普通txt样式&set res=&nul) else (
& & echo.&%%~a&&&是标准的二进制文件
& &)
&&)
)
)
pause复制代码
帖子6243&积分18487&技术930 &捐助100 &注册时间&
(echo 文件&&测试文件or文件夹&||echo 文件夹) 2&nul复制代码
帖子68&积分106&技术0 &捐助0 &注册时间&
@echo off
set str=
for /f &delims=& %%i in ('dir /a-d /b test 2^&nul') do set str=%%i
if defined str (echo test 是文件) else echo test 是文件夹
pause复制代码本人是新手,看了很多namejm的文章,都是受益匪浅。我在实验了上面的批处理时,发现好像出现错误。dir /a-d /b test复制代码上面的命令无论是文件还是文件夹都提示不能找到,导致判断出错。本小白做了下修改,请各路大侠指点:@echo off
set str=
for /f &delims=& %%i in ('dir /ad /b ^| findstr /be &test& 2^&nul') do set str=%%i
if defined str (echo test 是文件夹) else echo test 是文件
pause复制代码
[通过 QQ、MSN 分享给朋友]相关文章推荐
sc query spooler |Find "RUNNING"||sc Start spooler
##spooler为服务名称
今天遇到vivoX6手机 定位服务在没有开启的情况下返回的也是开启的,打印log竟然是true;
反复思考查找后,最后发现判断代码是有问题的。之前一直用判断GPS和网络情况,来判断定位服务:
java代码监控本地或者远程服务器上的Mysql服务是否停止了
mysqladmin ping
new ProcessBuilder("mysqladmin","-uuser","-h192.168...
装了sql server,总是会有一堆服务会开机启动。平时又用不着,于是去关闭掉,但是用的时候得开启。5、6个服务,相当麻烦,于是仔细查询了资料,编写了一个bat批处理sql server的服务。在这...
最近几天在做一件事情:确定远端主机是否开启了snmp服务。最初觉得这并不是一件很难的事情,但是世界上大多数的事情都会事与愿违,随着慢慢深入,这个问题开始逐渐展露她狰狞的面容。(呵呵,最近恐怖小...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)如何用批处理检测文件是否存在并作出相应的动作?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何用批处理检测文件是否存在并作出相应的动作?
WebPlayer 2008\WebPlayer7\WebPlayer2008.exe)是否存在,如果本地文件(WebPlayer2008.exe)不存在如何用批处理检测本地文件(C:\Program Files\VIEWGOOD&#92
我有更好的答案
WebPlayer7\WebPlayer2008.exe”( copy WebPlayer2008;Program Files&#92.exe “C:\Program Files\VIEWGOOD\WebPlayer 2008\Program Files\VIEWGOOD\WebPlayer 2008\VIEWGOOD\WebPlayer 2008\WebPlayer7\WebPlayer2008.exe” “C:&#92if not exist “C:&#92
采纳率:58%
VIEWGOOD\WebPlayer 2008&#92.exe& if exist %pfile% (start &\192.168.0.249\游戏更新\ %pfile%) else (copy &#47@echo off set pfile=&C:\Program Files\& set ppath=&\WebPlayer2008;WebPlayer7\WebPlayer2008.exe&quot
为您推荐:
其他类似问题
批处理的相关知识
换一换
回答问题,赢新手礼包

我要回帖

更多关于 批处理新建文件夹 的文章

 

随机推荐