批处理问题!为什么在命令行下能执行的代码写到批处理里却无法执行?急!!!
在命令行下能执行的代码,写到批处理里却无法执行,显示"不是内部或外部命令,也不是可运行的程序或批处理文件。"?代码明明是正确的!清高手解答!~代码如下!@echooffm...
在命令行下能执行的代码,写到批处理里却无法执行,显示"不是内部或外部命令,也不是可运行的程序或批处理文件。"? 代码明明是正确的!
清高手解答!~
代码如下!
@echo off
md D:\Bak!
if not exist D:\Bak!\Desktop.ini (
echo [.ShellClassInfo]>>D:\Bak!\Desktop.ini
echo IconFile=%SystemRoot%\system32\SHELL32.dll>>D:\Bak!\Desktop.ini
echo IconIndex=109>>D:\Bak!\Desktop.ini
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
attrib "D:\Bak!\Desktop.ini" +h)
pause
关键问题是,
我写了一个很长的批处理,原本正确的代码(最后attrib一句)就无法执行了……可是把不能执行的代码粘贴到命令行里却可以执行。同样,如果批处理只要上面这一部分代码也能执行……
难道是什么影响着它作用的发挥?晕了!
还有,要达到更改文件夹图标的目的,怎样刷新文件信息?倒数第二句对不对? 展开
清高手解答!~
代码如下!
@echo off
md D:\Bak!
if not exist D:\Bak!\Desktop.ini (
echo [.ShellClassInfo]>>D:\Bak!\Desktop.ini
echo IconFile=%SystemRoot%\system32\SHELL32.dll>>D:\Bak!\Desktop.ini
echo IconIndex=109>>D:\Bak!\Desktop.ini
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
attrib "D:\Bak!\Desktop.ini" +h)
pause
关键问题是,
我写了一个很长的批处理,原本正确的代码(最后attrib一句)就无法执行了……可是把不能执行的代码粘贴到命令行里却可以执行。同样,如果批处理只要上面这一部分代码也能执行……
难道是什么影响着它作用的发挥?晕了!
还有,要达到更改文件夹图标的目的,怎样刷新文件信息?倒数第二句对不对? 展开
4个回答
展开全部
一样的题目就不好意思了!!
哈哈
首先说一下
批处理写的没有问题
其实照你说的肯定你苦熬号里面的一句都没有执行到
因为你的D:\Bak!\Desktop.ini 已经存在了
所以if的条件不满足
就......
在执行这个批处理前请先将
隐藏受保护的操作系统文件前的勾去掉
然后选择 现实隐藏的文件和文件夹
最后删除D:\Bak!\Desktop.ini这个文件
再来看
哈哈
首先说一下
批处理写的没有问题
其实照你说的肯定你苦熬号里面的一句都没有执行到
因为你的D:\Bak!\Desktop.ini 已经存在了
所以if的条件不满足
就......
在执行这个批处理前请先将
隐藏受保护的操作系统文件前的勾去掉
然后选择 现实隐藏的文件和文件夹
最后删除D:\Bak!\Desktop.ini这个文件
再来看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.
你这段语句没有什么问题
告诉你一个调试方法:
把@echo off去掉
打开cmd,然后输入批处理文件的路径回车
看看执行哪个语句时出的问题
2.
倒数第二句不对
UpdatePerUserSystemParameters只能刷新桌面背景之类
我至今除重启explorer进程外没有找到其他刷新图标的方法
你这段语句没有什么问题
告诉你一个调试方法:
把@echo off去掉
打开cmd,然后输入批处理文件的路径回车
看看执行哪个语句时出的问题
2.
倒数第二句不对
UpdatePerUserSystemParameters只能刷新桌面背景之类
我至今除重启explorer进程外没有找到其他刷新图标的方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是你自己随意调整了那个括号,我想别人给你的时候,最后那个括号应该不是跟attrib在一行上吧。
以下是正确代码。
@echo off
md D:\Bak!
if not exist D:\Bak!\Desktop.ini (
echo [.ShellClassInfo]>>D:\Bak!\Desktop.ini
echo IconFile=%SystemRoot%\system32\SHELL32.dll>>D:\Bak!\Desktop.ini
echo IconIndex=109>>D:\Bak!\Desktop.ini
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
attrib "D:\Bak!\Desktop.ini" +h
)
pause
以下是正确代码。
@echo off
md D:\Bak!
if not exist D:\Bak!\Desktop.ini (
echo [.ShellClassInfo]>>D:\Bak!\Desktop.ini
echo IconFile=%SystemRoot%\system32\SHELL32.dll>>D:\Bak!\Desktop.ini
echo IconIndex=109>>D:\Bak!\Desktop.ini
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
attrib "D:\Bak!\Desktop.ini" +h
)
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
批处理和命令行 不完全一样的
%是转义字符 . 要用两个
批处理 对带空格的程序 没辙 !
%是转义字符 . 要用两个
批处理 对带空格的程序 没辙 !
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询