Articles of batch file

脚本.bat可以更改Windows PATH环境variables

我试图编写一个脚本,单击时将添加到Windows中的PATH环境variables的几个条目,而不是手动进行更改。 由于各种原因,我发现Windows上一直使用.bat文件,所以.bat脚本可以帮助我解决这个问题。 我实际上需要从Internet上的一个位置下载一个zip文件,将其解压到指定位置,然后更新环境variables中的PATH。 从来没有这样做过,所以任何提示赞赏。

如何安全地将文件名附加到Windows文件夹path参数?

假设我有一个批处理脚本,需要参数%1的文件夹path。 我想追加一个文件名到path,并在一个命令中使用。 有没有一种简单的方法可以在所有情况下都可靠? 我不想PUSHD %1并简单地忽略之后的path。 假设我的逻辑要求当前目录保持不变。 问题是%1参数可能有也可能没有终止反斜杠 – 即c:\path或c:\path\ 。 通常我可以简单地使用"%~1\file.ext"因为Windows对待"c:\path\file.ext"和"c:\path\\file.ext"一样的。 但有一个令人讨厌的情况 – c:\ 以下命令会产生此错误: The filename, directory name, or volume label syntax is incorrect. dir "c:\\file.ext" del "c:\\file.ext" 奇怪的是,这些命令工作得很好: if exist "c:\\file.ext" echo OK echo text>"c:\\file.ext" copy "c:\\file.ext" "somePath" xcopy "c:\\file.ext" "somePath" 还有另一个有问题的情况 – 如果我追加一个反斜杠, c:表示驱动器C:上的当前目录将会给出错误的结果。 "c:file.ext"与"c:\file.ext"不一样。 有没有一种简单的方法来安全地追加文件名到任何给定的文件夹path参数? 我不关心UNCpath,因为我不经常使用它们,而且我相信有一些命令对UNCpath不好用。 注意:这是我发布配对的问题和答案的情况。 这个问题多年来一直在我身边刺痛,最近我刚刚发现了一个我认为别人可能会感兴趣的简单解决scheme。

将数字写入文本文件 – batch file

这应该是一个简单的,我对自己失望,但不能为我的生活find一个解决scheme! 我正在尝试在BAT脚本中将数字1写入文本文件。 如果我做了下面的工作,但留下一个后面的空格后,我不能有的数字。 我知道你可以通过删除1和>之间的空格来删除尾部空格(这个可以使用字母),但是突然间我会收到一条消息,说ECHO是closures的。 ECHO 1 > mytextfile.txt *This works but leaves a trailing space* ECHO 1> mytextfile.txt *This gives me an error saying ECHO is OFF*

如何复制/剪切文件(而不是内容)到命令行中的Windows剪贴板?

有没有办法从命令行复制(或剪切)到Windows剪贴板的文件? 特别是使用批处理脚本。 我知道如何将内容复制到剪贴板( type file | clip ),但事实并非如此。 我想拥有整个文件,因为我会在Windows资源pipe理器中按Ctrl + C。

aws s3命令在由Windows任务调度程序触发的batch file中不起作用

我有一个batch fileC:\ upload_to_s3.bat。 在这个文件中,有一行: aws s3 sync D:\ S3 \ batch1 \ s3:// MyBucket / batch1 –exclude * .bat 我有Windows任务调度程序“S3小时同步”,每小时运行一次,以触发运行C:\ upload_to_s3.bat。 但是这个命令并没有做任何事情 – file upload从未发生过。 如果我双击C:\ upload_to_s3.bat,它会运行得很好。 这是Windows 2008 Standard服务器。 我已经安装了AWS CLI,并使用命令“aws configure”进行configuration,并input了我的访问密钥和密钥。 这就是为什么它运行,如果我双击batch file。 Windows任务计划程序以“[MyServer] / Administrator”帐户运行。 那么为什么在任务调度程序触发时,“aws s3 sync”命令不起作用呢? 我需要在“aws s3 sync”之前添加一行来设置凭证吗? 如果是这样,怎么样? 谢谢!

更改反斜杠在Windowsbatch file中转发斜杠

我试图将所有反斜杠()转换为包含文件名和位置的variables中的正斜杠(/)。 我读过关于这个,看到: %variable:str1=str2% 和 set "var=%var:\=/%" 我尝试过,但我显然没有得到正确的。 这里是我的.bat脚本的相关部分: FOR %%f IN ("E:\myfiles\app1\data\*.csv") DO ( echo %%f set "f=%%f:\=/%" echo %%f echo. ) 输出显示每个文件名列出两次。 即这一行: set "f=f:\=/%" 没有做我想做的事情。 任何人都可以看到我做错了什么?

如何将redirect符号(<和>)传递给Windowsbatch file函数?

假设这个batch file call :SomeFunction "a string with an > arrow" goto:eof :SomeFunction echo %~1 goto:eof 这是输出 调用:SomeFunction“带有箭头的string” 用1>箭头回显一个string GOTO:EOF GOTO:EOF 并创build一个名为arrow的文件,其中包含a string with an 。 注意1> 。 在这种情况下,我怎样才能防止命令处理器解释>作为redirect符号? (提示:我已经尝试了^>而不是这样。) 编辑:其他运营商( |和& )当然也受到影响。

在Win7 / 8上从CD或USB自动运行程序

我在一家IT部门工作,看到一些电脑进来的时候有些讨厌的病毒。 我们正在运行一个autorun脚本,当我们插入一个USB或者CD(最好是USB)时,它将运行一个恶意软件查杀工具(RKill)。我们希望在没有UACpopup的情况下插入USB或者CD, 。 我们的第二select是打开自动运行选项,即使在已经locking联邦调查局病毒的电脑上也是如此。 我们有autorun.inf,一个调用.exe的.bat,以及我们想要在USB或CD的根目录下运行的工具的.exe。 我们已经尝试了在这里find的解决scheme,但没有奏效。 下面是autorun.inf和rkill.bat的代码。 autorun.inf的: [autorun] open=rkill.bat Where the autorun.bat file reads: start rkill.exe rkill.bat: start rkill.exe 我明白,可能没有一个可靠的方法来做到这一点,但任何帮助将不胜感激。

如何让F#脚本文件和其他脚本语言像Windows中的.exe,.cmd和.bat文件一样工作

可以configurationF#脚本文件,以便可以直接调用它们,而无需直接指定脚本运行器应用程序及其文件扩展名,并可通过命令PATH环境variables进行访问。 这样做的步骤如下: 使用Windows资源pipe理器将特定脚本引擎设置为脚本文件types扩展的默认“打开方式”程序 将脚本扩展附加到PathExt环境variables,将其分类为可执行文件 或者,将包含脚本的目录path包含到Windows Path环境variables中 我的问题是:如果不直接调用它的runner应用程序,如何通过脚本获取参数。

batch file在Windows 7中列出目录中的所有文件

我试图列出目录中的所有文件,然后使用batch file将其写入文本文件。 我觉得应该是这样的 dir / (some flags here) >> files.txt 其中将包含一个像 a.exe b.exe c.exe 等等