系统粉 > 电脑问答 > 其他问答

已解决说系统重定向错误!

提问者:sky骚年279  |  浏览次  |  提问时间:2017-03-11  |  回答数量:3

说系统重定向错误!(图1)修复半天修不好!帮忙谢谢了!

已有3条答案
蜜ccccc

蜜ccccc

回答数:36  |  被采纳数:41

方法一:屏蔽掉重定向,使用方法如下:

PVOIDOldValue;
HANDLEhFile=INVALID_HANDLE_VALUE;
BOOLbRet=Wow64DisableWow64FsRedirection(&OldValue;);
if(bRet==TRUE)
{
//doyouwant
Wow64RevertWow64FsRedirection(OldValue);
}但是这种方法在32位系统运行时会报错:
所以在使用前要先加上是否64位的判断

typedefBOOL(WINAPI*LPFN_ISWOW64PROCESS)(HANDLE,PBOOL);

LPFN_ISWOW64PROCESSfnIsWow64Process;


BOOLIsWow64()
{
BOOLbIsWow64=FALSE;

fnIsWow64Process=(LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

if(NULL!=fnIsWow64Process)
{
if(!fnIsWow64Process(GetCurrentProcess(),&bIsWow64;))
{
//handleerror
}
}
returnbIsWow64;
}返回TRUE代表是64位系统,然后再使用关闭重定向Wow64DisableWow64FsRedirection函数。使用后记得调用Wow64RevertWow64FsRedirection恢复开关方法二:在64位系统下使用SysNative代替System32就可以访问到真正的System32目录。这种方法同样需要先确定系统是否为64位。但由于没有调用32位不支持的API,至少不会在运行时弹出错误提示。
2017-03-11 10:57:09
赞 3
凌潇繎

凌潇繎

回答数:172  |  被采纳数:18

bash和tcsh都使用大于号(>)进行标准输出重定向,但tcsh并不使用bash符号2>重定向标准错误输出。在tcsh中,可以使用大于号后面跟着逻辑与符号(>&)组合来重定向标准输出和标准错误输出。尽管也可以在bash下面使用这种符号,但是毕竟不通用。与第8.2.3节中的bash示例一样,下面的这些示例引用了两个文件,其中文件x并不存在,文件y只包含了一行文本。
tcsh$catxcat:x:Nosuchfileordirectorytcsh$catyThisisy.tcsh$catxy>&holdtcsh$catholdcat:x:NosuchfileordirectoryThisisy.

在这个示例中,cat带有一个参数y,将字符串发送到标准输出。而参数x将使cat发送一条错误消息到标准错误输出。
与bash不同,tcsh并没有提供将标准输出和标准错误输出分别重定向的一个简单的方法。工作区(work-around)通常提供一种合理的解决方案。下面的示例在一个子shell中运行带参数x和y的cat(圆括号确保括号中的命令在子shell中运行,参见第8.2.5节)。在这个子shell中>将标准输出重定向到文件outfile中。发送到标准错误输出的输出并没有被子shell改变,而是发送到父shell,父shell将该错误输出和标准输出一起发送到文件errfile中。又因为标准输出已经被重定向,所以errfile将只包含发送到标准错误输出的内容。
tcsh$(catxy>outfile)>&errfiletcsh$catoutfileThisisy.tcsh$caterrfilecat:x:Nosuchfileordirectory

如果想在后台运行一个慢速的命令,并且不希望它的输出扰乱终端屏幕,那么组合和重定向输出会很有用。举例来说,因为find工具一般都需要较长时间才能执行完毕,所以将其放在后台执行就是一个很好的办法。下面的这条命令在文件系统分层结构中查找名字中包含字符串biblio的所有文件。这条命令在后台运行,并将其输出发送到findout文件中。因为find工具会向标准错误输出发送报告,说明用户没有搜索权限的目录,所以findout文件不但记录搜索到的那些文件,还记录了那些未能搜索的目录。
tcsh$find/-name"*bib1io*"-print>&findout&

在这个示例中,如果没有将标准错误输出和标准输出组合,而是仅仅重定向标准输出,那么错误消息将出现在屏幕上,文件findout将只包含搜索到的那些文件。
如果将某条命令在后台执行,并将其输出重定向到某个文件,那么可以使用tail带-f选项来查看输出。-f选项使tail显示那些正在被写入到该文件的文本行:
tcsh$tail-ffindout

要想终止tail命令,按下中断键(通常就是CONTROL+C组合键)。
2017-03-11 13:18:29
赞 17
浅沙落痕

浅沙落痕

回答数:81  |  被采纳数:135

系统问题,完全可以采用系统还原来解决,在开始搜索框中输入还原,点击按照步骤进行还原就可以了,系统还原可以解决大部分的系统设置错误或是出现的问题。
2017-03-11 13:55:36
赞 8
相关问答
最新其他问答
解决方法