Questions tagged «scripting»

脚本编写是一种编程形式,通常具有低形式化,松散键入和不需要显式编译的特征。有许多脚本语言,并且这些脚本语言可用于各种场景-命令行应用程序,GUI,服务器端应用程序,扩展模块。

10
如何在Powershell中获取Parent的父目录?
因此,如果我有一个存储在变量中的目录,请说: $scriptPath = (Get-ScriptDirectory); 现在,我想找到两个父级目录。 我需要一个很好的方法: $parentPath = Split-Path -parent $scriptPath $rootPath = Split-Path -parent $parentPath 我可以用一行代码进入rootPath吗?

10
如何为漫长的道路做一个“别名”?
我尝试为我在shell脚本编写过程中经常使用的路径设置“别名”。我尝试了一些方法,但是失败了: myFold="~/Files/Scripts/Main" cd myFold bash: cd: myFold: No such file or directory 我该如何运作? 但是,cd ~/Files/Scripts/Main可行。
94 linux  bash  unix  scripting 

12
如何守护UNIX中的任意脚本?
我想要一个守护程序,它可以将任意的通用脚本或命令转换为守护程序。 我有两种常见的情况要处理: 我有一个应该永远运行的脚本。如果它死了(或重新启动时),请重新启动它。永远不要让两个副本同时运行(检测一个副本是否已经在运行,在这种情况下不要启动它)。 我有一个简单的脚本或命令行命令,希望永久重复执行(两次运行之间有短暂的暂停)。再次,不允许脚本的两个副本同时运行。 当然,在案例2中围绕脚本编写一个“ while(true)”循环然后为案例1应用解决方案是很简单的,但是更通用的解决方案将直接解决案例2,因为这适用于案例1中的脚本,例如好(你可能只是想更短或没有停顿如果脚本不打算会死(当然,如果剧本真的没有永不再死暂停实际上并没有物质))。 请注意,该解决方案不应该涉及在现有脚本中添加文件锁定代码或PID记录。 更具体地说,我想要一个可以“运行”的程序“守护进程” % daemonize myscript arg1 arg2 或者,例如 % daemonize 'echo `date` >> /tmp/times.txt' 它将不断增加的日期列表附加到times.txt。(请注意,如果要守护的参数是一个脚本,该脚本可以像上面的情况1那样永久运行,那么守护程序仍然会做正确的事,并在必要时重新启动它。)然后,可以在.login中输入上述命令和/或每小时或每分钟刷新一次(取决于我对它意外死亡的担心程度)。 注意:守护程序脚本将需要记住正在守护程序的命令字符串,这样,如果再次守护相同的命令字符串,它将不会启动第二个副本。 此外,理想情况下,该解决方案应该在OS X和linux上都可以工作,但是欢迎使用一种解决方案。 编辑:如果您必须使用调用它,这很好sudo daemonize myscript myargs。 (如果我认为这一切都是错误的,或者有快速而肮脏的部分解决方案,我也很乐意听到。) PS:如果有用,这是一个特定于python的类似问题。 而这个回答类似的问题有什么似乎是一个任意脚本的快速和肮脏的妖魔化一个有用的成语:

10
使用msbuild复制所有文件和文件夹
我只是想知道是否有人可以通过我尝试编写的某些msbuild脚本来帮助我。我想做的是使用msbuild将所有文件和子文件夹从一个文件夹复制到另一个文件夹。 {ProjectName} |----->Source |----->Tools |----->Viewer |-----{about 5 sub dirs} 我需要做的是将所有文件和子文件夹从tools文件夹复制到应用程序的debug文件夹中。这是我到目前为止的代码。 <ItemGroup> <Viewer Include="..\$(ApplicationDirectory)\Tools\viewer\**\*.*" /> </ItemGroup> <Target Name="BeforeBuild"> <Copy SourceFiles="@(Viewer)" DestinationFolder="@(Viewer->'$(OutputPath)\\Tools')" /> </Target> 生成脚本会运行,但是不会复制任何文件或文件夹。 谢谢



6
在批处理脚本中转义双引号
我该如何用转义的双引号替换批处理文件参数中的所有双引号?这是我当前的批处理文件,它将在字符串中扩展其所有命令行参数: @echo off call bash --verbose -c "g++-linux-4.1 %*" 然后,它使用该字符串调用Cygwin的bash,执行Linux交叉编译器。不幸的是,我将这样的参数传递到我的批处理文件中: "launch-linux-g++.bat" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -DNDEBUG -c -o "C:\Users\Me\Documents\Testing\SparseLib\bin\Win32\LinuxRelease\hello.o" "c:\Users\Me\Documents\Testing\SparseLib\SparseLib\hello.cpp" 传入的第一个路径周围的第一引号过早地结束了要传递给GCC的字符串,并将其余参数直接传递给bash(这很失败)。 我想如果可以将参数连接成单个字符串,然后转义引号就可以了,但我很难确定如何执行此操作。有人知道吗?

10
如何在Windows中执行Python脚本?
我有一个简单的脚本blah.py(使用Python 2): import sys print sys.argv[1] 如果我通过以下方式执行脚本: python c:/..../blah.py argument 它输出参数,但是如果我通过以下方式执行脚本: blah.py argument 发生错误: IndexError ... 因此参数不会传递给脚本。 PATH中的python.exe。路径中也包含blah.py的文件夹。 python.exe是执行* .py文件的默认程序。 问题是什么?


8
如何在PowerShell中创建自定义类型供脚本使用?
我希望能够在某些PowerShell脚本中定义和使用自定义类型。例如,假设我们需要一个具有以下结构的对象: Contact { string First string Last string Phone } 我将如何创建它,以便可以在如下函数中使用它: function PrintContact { param( [Contact]$contact ) "Customer Name is " + $contact.First + " " + $contact.Last "Customer Phone is " + $contact.Phone } 这样的事情是否可行,甚至在PowerShell中推荐?

6
从Bash中的文本文件创建数组
脚本采用一个URL,将其解析为必填字段,然后重定向其输出以保存在文件中, file.txt中。每次找到字段时,输出将保存在新行中。 file.txt A Cat A Dog A Mouse etc... 我要拿 file.txt在新脚本中从中创建一个数组,其中每一行都将成为数组中自己的字符串变量。到目前为止,我已经尝试过: #!/bin/bash filename=file.txt declare -a myArray myArray=(`cat "$filename"`) for (( i = 0 ; i < 9 ; i++)) do echo "Element [$i]: ${myArray[$i]}" done 当我运行此脚本时,空格导致单词被拆分,而不是被获取 所需的输出 Element [0]: A Cat Element [1]: A Dog etc... 我最终得到这个: 实际产量 Element …

9
跨网域iframe调整大小
如何从其他域调整iframe的大小 -编辑 向下滚动一些解决方案..或阅读如何不这样做:D 经过数小时的代码黑客攻击后,得出的结论是,iframe内部的任何内容都无法访问,即使是在我的域中呈现的滚动条也是如此。我尝试了许多技巧都无济于事。 为了节省您的时间,甚至不要走这条路,只需使用sendMessages进行跨域通信。 我使用了HTML <5的插件-进入底部找到一个好例子:) 过去几天,我一直在尝试将iframe集成到网站中。这是一个短期解决方案,而另一方正在开发和API(可能要花费数月的时间...),并且因为这是短期解决方案,所以我们确实想使用easyXDM-我可以访问其他域,但要求他们这样做非常困难按原样添加p3p标头..... 3个iframe 我找到的最接近的解决方案是3个iframe,但考虑到了chrome和safari,所以我不能使用它。 镀铬 http://css-tricks.com/examples/iFrameResize/crossdomain.php#frameId=frame-one&height=1179 测量滚动条 我找到了另一篇有关如何使用scrollheight尝试调整表单大小的文章。理论上它可以正常工作,但是我无法使用iframe滚动高度正确应用它。 document.body.scrollHeight 那显然使用了主体的高度(无法访问这些属性100%是基于客户端显示的Canvaz而非x域文档的高度) 我尝试使用jquery来获取iframe的高度 $('#frameId').Height() $('#frameId').clientHeight $('#frameId').scrollHeight 返回不同的Chrome值,即-或根本没有任何意义。问题是框​​架内的所有内容都被拒绝-甚至滚动条... 计算样式 但是,如果我检查并在iframe的chrome中添加元素,它就会很傻地向我显示iframe内的文档尺寸(使用jquery x-domain获取iframe.heigh-访问被拒绝),在计算出的CSS中没有任何内容 现在,chrome如何计算呢?(编辑浏览器使用其内置的渲染引擎重新渲染页面,以计算所有这些设置-但未附加在任何位置,以防止跨域欺诈。) HTML4 我阅读了HTML4.x的规范,它说那里应该有通过document.element公开的只读值,但是通过jquery拒绝了它的访问 代理框架 我采用了将网站代理回去并计算确定的方法,直到用户通过iframe登录并且代理获取登录页面而非实际内容为止。另外对于某些两次调用该页面是不可接受的 http://www.codeproject.com/KB/aspnet/asproxy.aspx http://www.johnchapman.name/aspnet-proxy-page-cross-domain-requests-from-ajax-and-javascript/ 重新呈现页面 我没有走那么远,但是有jscript引擎可以查看源代码并根据源文件重新呈现页面。但这需要破解这些jscript ..对于商业实体而言,那不是理想的情况...以及一些涉及纯Java小程序或服务器端渲染的发票 http://en.wikipedia.org/wiki/Server-side_JavaScript http://htmlunit.sourceforge.net/ <-java而不是jscript http://maxq.tigris.org/ 编辑09-2013 更新 所有这些都可以通过HTML5套接字完成。但是easyXDM对于非HTML5投诉页面来说是很好的后备。 解决方案1很好的解决方案! 使用easyXDM 在您的服务器上,您以 <html> <head> <script src="scripts/easyXDM.js" type="text/javascript"></script> <script …

20
使用find和sed递归重命名文件
我想浏览一堆目录,并将以_test.rb结尾的所有文件重命名为以_spec.rb结尾的文件。这是我从未真正弄清楚如何使用bash的事情,因此这一次我想我会花些力气将它钉牢。但是到目前为止,我的最大努力是: find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:exec之后有一个额外的回显,以便在测试时打印命令而不是运行命令。 当我运行它时,每个匹配文件名的输出是: mv original original 即用sed替代已丢失。诀窍是什么?
85 bash  scripting  sed  find  replace 


5
确定当前的PowerShell进程是32位还是64位?
在x64位OS平台上运行PowerShell脚本时,如何确定该脚本在哪个版本的PowerShell(32位或64位)上运行? 背景信息 默认情况下,在64位平台(例如Windows Server 2008)上安装了32位和64位版本的PowerShell。这在运行必须针对特定体系结构的PowerShell脚本(即使用64位位,用于SharePoint 2010的脚本,以使用64位库)。 相关问题: 针对Powershell的x64与x86可变性进行编程的最佳方法是什么?这个问题涉及在32位和64位体系结构上运行的代码。当您要确保脚本仅针对正确的版本运行时,我的问题涉及这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.