草庐IT

windows - SAS-无法从Windows资源管理器加载带有长名称的程序

coder 2024-06-12 原文

我在Windows 7上使用Base SAS 9.4。出于各种原因(下面将详细介绍),我的某些程序名称非常长。进一步加剧了这一点,程序存储在网络驱动器的深处。尝试从Windows资源管理器打开时,这会导致问题。我相信问题出在SAS上,但已经用Windows标记了问题,以防万一。我希望有某种方法可以通过配置文件或对注册表进行编辑来解决此问题。

要打开程序,我通常双击Windows资源管理器中的.sas文件。在短暂的等待期(其中SAS消息框指出)后,这将打开增强型编辑器:

The SAS System is processing requests. Please wait...



当程序的全名(包括路径和扩展名)超过182个字符(即具有格式:\\network-location\a\bunch\of\....\folders\program path exceeding 182 char.sas)时,会出现相同的“SAS系统正在处理请求”消息,但是会产生Windows错误。



毫不奇怪,Windows没有提供任何解决方案。

如果程序名称的完整路径恰好是182个字符,则不会发生任何事情。我双击该程序,唯一的结果是在Windows资源管理器中选择文件。如果我在Windows任务管理器中监视“进程”,则双击该程序不会启动任何新进程。

当程序名称的完整路径少于182个字符时,程序将在扩展编辑器中按预期方式打开。

根据MSDN,最大路径为260个字符。显然,182远低于该限制。 SAS是唯一存在路径长度问题的应用程序。例如,我可以复制文件名和扩展名,创建一个具有相同名称的新文本文档(加上.txt),然后在记事本, Notepad++ ,Word,写字板,Emacs等中打开文件。

对于使用超过182个字符的名称,我推断出两种解决方法。
如果我通过SAS.exe打开SAS,则可以通过“打开”对话框加载路径超过182个字符的程序。但是,这不是一个好的解决方案,因为“打开”对话框不允许复制/粘贴路径。必须遍历整个文件路径。我也可以将这样的程序拖到SAS的编辑器窗口中以进行加载。这也不是一个好的解决方案,因为只有在空白的编辑器窗口中才加载程序。如果程序被意外拖到日志窗口中,它将自动执行。此外,该程序无法在方便的位置打开。它在增强编辑器的中间打开,必须手动调整大小。程序可以完全加载和执行,使我相信可以通过某种方法解决此问题。似乎在加载文件的过程中,SAS违反了一些变量限制。

当然,人们会建议我使用其他网络位置或简称。对于前者,我需要使用特定的网络位置。对于后者,正在与各种报告同时开发这些程序。许多程序是相似的,并且报告中的相应引用(表格/数字)多次更改/并不总是与我联系。通过经验,我发现处理这些不确定性的最可靠方法是简单地通过报告中提供的标签来命名文件。否则,我需要采用不清楚的缩写,不良的组织惯例或引入中间步骤(例如创建代码或为程序建立索引的文档)。

编辑:根据Joe的评论,似乎“打开”对话框允许复制和粘贴特定文件名。可以通过Shift + Right Mouse Click > Copy as Path在Windows资源管理器中复制文件路径,然后将其粘贴到“打开”对话框的“文件路径”框中。



为了避免遍历树,可以在访问“打开”对话框之前更新“当前文件夹”。它位于增强编辑器的右下角。



“打开”对话框将从“当前文件夹”位置设置为任何位置开始。

最佳答案

我怀疑您的问题是您的260限额实际上是适用的。

双击程序文件时,它不仅会将路径复制到SAS。相反,发生的是调用SASOACT.exe,其命令类似于以下内容:

"C:\Program Files\SAS94\SASFoundation\9.4\core\sasexe\sasoact.exe" action=Open datatype=Access filename="%1" progid=SAS.Application.940

本身已经超过100个字符;大概在幕后,您最终会得到类似
"C:\Program Files\SAS94\SASFoundation\9.4\core\sasexe\sasoact.exe -open ""%1"""

这将为您传递的内容增加70或80个字符。因此限制为260个字符。

您应该使用一种解决方法-我个人更喜欢仅file-> open,但是实际上最适合您的方法都可以。您也可以考虑使用其他编辑器来执行简单的双击操作,尽管您选择的任何编辑器仍然存在一些问题。

您也可以考虑要求IT部门在路径名较短的位置安装SAS本身,尽管实际上可以节省10个左右的字符。

至于粘贴;您可以将路径名和文件名一样容易地粘贴到file-> open对话框中。我不知道为什么您似乎不认为可以,但是我现在这样做的难度不比任何其他文件夹对话框大...

顺便说一下,要考虑的另一种解决方法是将驱动器号映射到网络路径。也就是说,如果您的网络路径是
//myserver/projects/financial/projectnumber/.../

您将一些字母(任意说R :)映射到该根路径,//myserver/projects/financial/projectnumber,除了在本地引用方式外,它没有任何其他更改。然后,您可以使用:
R:\...\filename.sas

而且,您不必导航路径等。您必须在要对其执行此操作的任何计算机上重复该映射过程,但是如果这主要与您自己的工作流程有关,那不应该成为问题。只是不要引用R:在程序本身内部,并且没有其他人会知道您已进行任何更改。

关于windows - SAS-无法从Windows资源管理器加载带有长名称的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655300/

有关windows - SAS-无法从Windows资源管理器加载带有长名称的程序的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  5. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  8. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  9. ruby - 无法覆盖 irb 中的 to_s - 2

    我在pry中定义了一个函数:to_s,但我无法调用它。这个方法去哪里了,怎么调用?pry(main)>defto_spry(main)*'hello'pry(main)*endpry(main)>to_s=>"main"我的ruby版本是2.1.2看了一些答案和搜索后,我认为我得到了正确的答案:这个方法用在什么地方?在irb或pry中定义方法时,会转到Object.instance_methods[1]pry(main)>defto_s[1]pry(main)*'hello'[1]pry(main)*end=>:to_s[2]pry(main)>defhello[2]pry(main)

  10. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

随机推荐