标签: batch-file

Windows 7 批处理文件:为什么这些 IF 块阻止我将变量分配给值?

这是损坏的批处理文件:

@echo off
if prod==prod (
    if xps==xps (
        set i1=prodxpsi1
        set i2=prodxpsi2
        set e1=prodxpse1
        set e2=prodxpse2
    ) else (
        set i1=prodzpsi1
        set i2=prodzpsi2
        set e1=prodzpse1
        set e2=prodzpse2
    )

    if 1==1 (
        echo %i1%, %i2%, %e1%, %e2%
    ) else (
        echo %i1%, %i2%, %e1%, %e2%
    )
)

pause
Run Code Online (Sandbox Code Playgroud)

但是,当我if prod==prod像这样取出外部块时,它可以工作:

@echo off
if xps==xps (
    set i1=prodxpsi1
    set i2=prodxpsi2
    set e1=prodxpse1
    set e2=prodxpse2
) else (
    set i1=prodzpsi1
    set i2=prodzpsi2
    set e1=prodzpse1
    set e2=prodzpse2
)

if 1==1 ( …
Run Code Online (Sandbox Code Playgroud)

prompt batch-file

7
推荐指数
1
解决办法
6809
查看次数

如何在不写密码的情况下运行“runas”命令

我需要运行“runas”命令以自动登录 Active Directory 上的应用程序用户。然后我需要运行一个可执行文件。

我可以以某种方式执行此操作或解决不键入密码的问题吗?

runas active-directory batch-file

7
推荐指数
1
解决办法
5万
查看次数

如何从注册表刷新我的 PATH 变量,而无需重新启动、注销或重新启动资源管理器?

%PATH%对注册表中的变量进行了一些更改。现在,我希望看到应用这些更改,而无需注销、重新启动或重新加载 Explorer。有没有办法做到这一点?

我宁愿通过某种可以放在.BAT文件末尾的命令来执行此操作,并且不想使用除全新安装操作系统随附的工具之外的任何工具。这需要与 Windows XP SP3 最低限度地兼容,并且应该一直工作到 Windows 7 x64 和 Server 2008 R2。

windows windows-registry environment-variables batch-file

7
推荐指数
2
解决办法
6万
查看次数

Linux 中的批处理文件等效项

我需要在带有 GNOME 的 Red Hat Linux 5 虚拟机上运行一些基本命令来启动几个服务器。

例子

cd /home/user/scripts  
sh runTHISthing.sh pub  
cd /home/user/logs  
tailf pub.log  
Run Code Online (Sandbox Code Playgroud)

不是疯狂的代码量,但有时我每天重启 VM 好几次。在 Windows 中,我可能只是创建一个批处理文件并将其放在我的桌面上。然后只需双击即可。

无论如何在Linux中做同样的事情吗?我试图创建一个启动器,它只在终端中运行 emtpy 文件而没有结果。

windows linux command-line shell-script batch-file

7
推荐指数
1
解决办法
1万
查看次数

如何在管道输出并保留当前工作目录的同时从另一个批处理文件启动批处理文件?

我有一个作为计划任务运行的批处理文件。为了举例,我们称之为alltasks.bat

它看起来像下面这样:

@ECHO OFF
clearwebtemp.bat > clearwebtemp_out.txt
clearblahtemp.bat > clearblahtemp_out.txt
clearblihtemp.bat > clearblihtemp_out.txt
Run Code Online (Sandbox Code Playgroud)

当被调用的脚本都没有更改目录时,这可以正常工作,但如果它们这样做,则主脚本无法完成剩余的批处理调用或将输出通过管道传输到文件。

我尝试使用该start命令,但可以预见的是,该start命令的输出是通过管道传输的,而不是批处理文件本身的输出。

我还尝试使用%CD%脚本顶部的变量保留当前工作目录,然后在每次调用后切换回它,但是文件的管道输出是在脚本切换到的目录内完成的,这似乎没有有意义。

是否有明显(或不那么明显)的方法来实现我想要完成的目标?

windows batch command-line batch-file

7
推荐指数
1
解决办法
2677
查看次数

为什么在使用批处理文件时使用重新调用?

看来我可以使用startcall来执行批处理文件,但是我不确定为什么要使用一个而不是另一个。有什么好处?

windows batch-file

7
推荐指数
1
解决办法
2万
查看次数

为什么“启动 winword”有效而只是“winword”无效?

假设安装了 Microsoft Office。考虑以下批处理文件:

REM the following line successfully launches Microsoft Word
start winword

REM none of the following commands work to launch Microsoft Word
winword
winword.exe
winword.com
winword.bat
winword.cmd
winword.vbs
winword.vbe
winword.js
winword.jse
winword.wsf
winword.wsh
winword.msc
Run Code Online (Sandbox Code Playgroud)

允许使用名称“winword”启动 Microsoft Word 的“开始”指令是什么?

我的好奇心源于我对“开始”动词机制的兴趣 - 我不需要有关启动 Microsoft Office 的其他方法的建议。请不要建议我将 Microsoft Office 目录添加到我的 PATH 环境变量中 - 我知道这会做什么。

如何start找到“WINWORD”时,cmd不能直接找到它呢?

windows batch-file cmd.exe

7
推荐指数
2
解决办法
3262
查看次数

如何通过从文本文件中读取行来创建多个文件夹并命名它们?

我有一个名为 Export.txt 的纯文本文件。它包含一个地理位置列表,前面是一个带前导零的 3 位数字。

例子

--START OF FILE--
001 Aberdeen
002 Bellevue
003 Camas
004 Davenport
005 Edgewood
006 Ferndale
007 George
008 Harrington
009 Ilwaco
010 Kahlotus
--END OF FILE--
Run Code Online (Sandbox Code Playgroud)

如何编写脚本或批处理文件来读取文件中的每一行并在 NTFS 分区的给定位置创建一个具有此名称的文件夹?

笔记!请注意,文件夹名称必须包含数字。将上面的列表视为文件夹的实际列表。

更新!我要创建的实际文件夹列表是 245,范围从 001 到 245。这是前几行。

--START OF FILE--
001 Harberget
002 Långflon
003 Källegrafsrös
004 Badstuknappen
005 Aspberget
006 Knipen
007 Halsjön
008 N Finnskoga
009 Båtstad
010 Tisjön
.
.
.
.

245 Milskär
--END OF FILE--
Run Code Online (Sandbox Code Playgroud)

完整列表可以在这里找到:http : //pastebin.com/SNde4bBN …

windows script batch shell-script batch-file

7
推荐指数
2
解决办法
4万
查看次数

如何强制程序在特定桌面中打开?

我创建了一个使用 3 种不同桌面配置的环境,但是每次重新启动时,我都必须手动打开该目标桌面中的每个程序,使其看起来像以前一样。

所以,我想写一个.bat文件,让我的所有程序都能在合适的桌面上运行。我想知道这样的事情是否可能:

"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -desktop:2
"C:\Program Files\My\Other\Software.exe" -desktop:3
...etc.
Run Code Online (Sandbox Code Playgroud)

显然,这个例子不是真实的,但我希望有类似的东西。我不在乎它是否是 hacky :)

virtual-desktop command-line batch-file windows-10

7
推荐指数
2
解决办法
6865
查看次数

在 Windows Bat 文件中嵌套 IF

我在理解嵌套 IF 在 windows .bat 脚本中的工作方式时遇到了一些困难。我希望实现的目标如下。我将向 bat 文件传递​​两个参数

如果第一个参数 = 0 AND 如果第二个参数 = 0 运行 proc1

IF 第一个参数 = 0 AND 第二个不是 0 运行 proc2

如果第一个参数不是 0 run proc 3

到目前为止我编写的代码框架是

@echo off

IF %1% == 0 (
    IF %2% == 0 ( goto proc1
    ) ELSE ( goto proc2
)
  ELSE ( goto proc3
)

:proc1
echo in Proc1 0 0
pause
exit
:proc2
echo in Proc2 0 N0
pause
exit
:proc3
echo in Proc3 N0  0
pause …
Run Code Online (Sandbox Code Playgroud)

script batch-file

7
推荐指数
1
解决办法
3万
查看次数