【问题标题】:Calling a random folder in a Batch script [closed]在批处理脚本中调用随机文件夹[关闭]
【发布时间】:2022-01-14 12:36:40
【问题描述】:

我有一个简单的脚本,它使用自己的参数关闭“壁纸引擎”的打开窗口,然后另一行调用文件夹内的下一个壁纸:

1803613842

如何从随机文件夹中选择下一张壁纸而不是调用特定的壁纸?

@echo
        
        "C:\Program Files (x86)\Steam\steamapps\common\wallpaper_engine\wallpaper64.exe" -control closeWallpaper "Wallpaper #$" 
        
        "C:\Program Files (x86)\Steam\steamapps\common\wallpaper_engine\wallpaper64.exe" -control openWallpaper -file "C:\Program Files (x86)\Steam\steamapps\workshop\content\431960\1803613842\project.json" -playInWindow "Wallpaper #2" -width 1920 -height 1080
    
    exit

【问题讨论】:

    标签: powershell batch-file cmd


    【解决方案1】:

    第一步是创建一个包含所有可用文件夹名称的 bash 数组。

    一旦你有一个数组(这里称为@dirs),你可以选择一个随机项目,如下所示:

    randomdir=${dirs[$RANDOM % ${#dirs[@]} ]}
    

    这会生成一个介于 0 和数组长度之间的随机数,然后返回该索引处的元素。

    如果您可以获得逗号分隔或类似的目录列表,则可以通过以下方式创建 dirs 数组:

    my_dirs="abc,def,ghi"
    IFS=',' read -ra dirs <<< "$my_dirs"
    randomdir=${dirs[$RANDOM % ${#dirs[@]} ]}
    

    【讨论】:

    • 我是否将“目录”定义为逗号分隔? 1668465,46558846
    • 不,它需要是一个 bash 数组。抱歉,我不确定 Windows 中有哪些目录列表方法可以生成这个,但添加了一个从逗号分隔的字符串生成数组的示例。
    • ' set my_dirs="1,2,3,4" set IFS=',' read -ra dirs
    • 我很困惑@Trance84,您要求cmd batch-file 解决方案,然后您尝试了bash 脚​​本的结果,然后您似乎设法使它工作??
    • 我对你@match 的回答没有意见,我特意问OP 你的bash 解决方案如何解决他的batch-file 问题。
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多