Linux 如何将此powershell脚本转换为bin/sh脚本?

Linux 如何将此powershell脚本转换为bin/sh脚本?,linux,powershell,sh,Linux,Powershell,Sh,如何转换此脚本: NET USE \\65.161.3.129\someFolder\test /u:somedomain\user myPassword123! robocopy . \\65.161.3.129\someFolder\test /s NET USE \\65.161.3.129\someFolder\test /d 或带有参数: Param($mypath) NET USE $mypath /u:somedomain\user myPassword123! robocopy

如何转换此脚本:

NET USE \\65.161.3.129\someFolder\test /u:somedomain\user myPassword123!
robocopy . \\65.161.3.129\someFolder\test /s
NET USE \\65.161.3.129\someFolder\test /d
或带有参数:

Param($mypath)
NET USE $mypath /u:somedomain\user myPassword123!
robocopy . $mypath /s
NET USE $mypath /d
如何制作在linux中工作的类似脚本
/bin/sh

我想将文件复制到某个网络位置(windows共享文件夹)。windows server上没有scp,我无法安装任何东西。

如果您使用的是linux版本,则
curl
实用程序可以处理SMB(即
\\machine\share
)路径。例如:

curl-u“域\用户名:passwd”smb://server.example.com/share/file.txt


请参阅Linux上的

,您将需要以下内容(在Ubuntu 18.04上验证,尽管没有Windows域帐户):

  • 先决条件:必须安装
    cifsutil
    包,下面的脚本确保了这一点(它调用
    sudo-apt-get-install-cifs-utils
    on-demand)

  • 选择(临时)装载点(可通过其访问共享文件的本地目录)

  • 使用
    mount.cifs
    实用程序装载共享,然后使用
    umount
    卸载(删除)共享

  • 使用
    cp-R
    复制目录层次结构

注:

  • sudo
    (管理)权限是必需的;脚本将提示输入密码一次,密码通常会缓存几分钟
#/垃圾箱/垃圾箱
#作为参数提供的SMB文件共享路径。
本地mypath=$1
#选择一个(临时)装载点目录。
本地挂载点=“/tmp/mp\u$$”
#先决条件:
#确保已安装cifs UTIL。
哪个mount.cifs>/dev/null | | sudo apt get install cifs utils | | exit
#创建(临时)装载点目录。
sudo mkdir-p“$mountpoint”| |出口
#装载CIFS(SMB)共享:
#警告:显然,硬编码密码存在安全风险。
sudo mount.cifs-o user=“user=user,pass=myPassword123!,domain=somedomain”“$mypath”“$mountpoint”| |退出
#执行复制操作
#删除“echo”以实际执行复制。
回声cp-R。“$mountpoint/”
#卸载共享。
sudo umount“$mountpoint”| |出口
#如果需要,拆下安装点方向
sudo rmdir“$mountpoint”

知道这一点肯定很好,但它似乎仅限于处理一个文件,而该文件的全名是事先知道的,因此按照OP的要求,使用它来复制整个目录层次结构是不实际的。除此之外,我还希望它能在macOS(和其他Unix版本)上工作。(在我的实验中(在Linux和macOS上),我不断遇到对等错误导致的
连接重置,但我可能做错了什么。)