问题描述
从朋友那得来一个清理垃圾的小程序用过两次效果不错,电脑速度提高了一点,今天再用时提示“文件名太长”或“没有权限,拒绝访问”。程序被命名为:clrsxs.cmd,程序如下:@echooffsetlocalENABLEEXTENSIONSENABLEDELAYEDEXPANSIONsetwinver=NULLfor/f"eol=;tokens=4delims=]"%%iin('ver')dosetwinver=%%iif"%winver%"=="NULL"goto:enoverechoWindowsversionis%winver%,gettonextstep.echoWindows版本为%winver%,进行下一步。ifnotexist%SystemRoot%winsxsnulgoto:enosxssetver_prefix=%winver:~0,-1%setmove_dir=%SystemRoot%winsxs_delifnotexist%move_dir%nulmd%move_dir%for/f"tokens=*delims="%%ain('dir/b/ad%SystemRoot%winsxs*_%ver_prefix%*^|find/v"%winver%"')do(for/f"tokens=1-6delims=_"%%gin("%%a")do(setnewvered=echo%%i|find"%ver_prefix%">nul&&setnewvered=%%g_%%h_%winver%.*_%%j_*echo%%j|find"%ver_prefix%">nul&&setnewvered=%%g_%%h_%%i_%winver%.*_%%k_*echo%%k|find"%ver_prefix%">nul&&setnewvered=%%g_%%h_%%i_%%j_%winver%.*_%%l_*ifdefinednewvered(for/d%%rin(%SystemRoot%winsxs!newvered!)do(ifexist"%SystemRoot%winsxs%%a"(echomoving%SystemRoot%winsxs%%aecho正在移动%SystemRoot%winsxs%%atakeown/r/f"%SystemRoot%winsxs%%a">nulcacls"%SystemRoot%winsxs%%a"/t/e/geveryone:f>nulmove"%SystemRoot%winsxs%%a""%move_dir%%%a")))))echoAllmoveoperationcompleted.Pleaseattempttodeletewinsxs_deldirin%SystemRoot%byyourself.Pressanykeytoexit.echo移动完毕。请自行删除%SystemRoot%下的winsxs_del目录。按任意键退出。pause>nulgoto:eofrem---------------:enoverechoCouldnotgetwindowsversion,abort!echo无法获取windows版本,中止!goto:eofrem---------------:enosxsechoNotfound%SystemRoot%winsxs!maybenoprivilegeorlowerwindows!echoOnlysupportwindows7andlater!echo找不到%SystemRoot%winsxs!可能权限不够或windows版本不对!echo仅支持windows7及更高版本!goto:eof
解决方案
解决方案二:
用管理员运行呗。