小编use*_*627的帖子

如何将参数或变量从一个PowerShell脚本传递到另一个?

在cmd中,我可以通过在声明要运行的bat文件之后列出它们将参数从一个bat传递到另一个bat.然后,待运行的球棒接收它们为%1,%2,%3等.这可以在Powershell中完成吗?

我有一个ps1脚本script1,它提示用户输入一个位置.该脚本已被处理.该位置存储为变量; $同上.在第一个脚本中,有一点是用户可以选择一个选项来运行另一个ps1脚本script2,它有更多的选项.我想将$ loc从script1传递给script2.

在script1中我尝试了以下内容:

param ($loc)
start-process "\script2.ps1" -ArgumentList $loc
start-process "\script2.ps1" -$loc
start-process "\script2.ps1"
Run Code Online (Sandbox Code Playgroud)

然后是脚本2

args[0]
$loc
Run Code Online (Sandbox Code Playgroud)

我知道我可能只是不理解传递的论点.事情是另一个选项调用bat脚本.那个我使用-ArgumentList $ loc并且它传递那么好.我使用"Set loc =%1"在bat脚本中选择了这个参数

windows powershell cmd batch-file

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

如何编写一个比较修改日期并查看哪个更新的脚本?

现在我发现了一些使用java和python的东西,但是我想要使用CMD的东西,因为这是我们已经拥有的任何Win PC.我有一个从XLS文件创建的CSV.XLS文件经常更新.我一直在尝试编写一个在登录时运行的脚本,它检查XLS文件和CSV文件,如果XLS更新(最近修改过),它将运行libreoffice命令,将其输出为";" 分隔的CSV.我在做什么

FOR /F "TOKENS=1" %%A IN ('DIR /o:-d "\\path" ^| FIND "Part of filename"') DO SET "Chk1=%%A" 
Run Code Online (Sandbox Code Playgroud)

这给了我一个例子Chk1 = 1/3/2015.如果Chk2 = 1/2/2015,我做

IF "%Chk1%" GTR "%Chk2%" ECHO Hi
Run Code Online (Sandbox Code Playgroud)

我嗨.问题是新的一年到来了,如果Chk2 = 12/30/2014,上面的相同代码没有给我"嗨".我假设它完全忽略了这一年,只是在寻找一个月和日.这给我的另一个问题是,因为它正在查看365之外的日期,如果我在同一天内运行脚本,它将看不到更改.原因是"1/3/2015 10:24"被视为大于"1/3/2015 10:23"但小于"12/30/2014 06:14".

我知道我也可以在powershell和其他平台上做到这一点,但就像我之前说的那样,我不介意安装Python,实际上,在我的电脑上或者在我的网上运行PS脚本,但是我想让其他人保持原状,但有能力仍然这样做.CMD是每个人都拥有的,并且不需要进行任何安全性更改来运行批处理脚本.

windows csv command-line batch-file

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

标签 统计

batch-file ×2

windows ×2

cmd ×1

command-line ×1

csv ×1

powershell ×1