【.cmd】 バッチファイルスクリプト %11 【.bat】 at TECH
[2ch|▼Menu]
[前50を表示]
450:デフォルトの名無しさん
16/01/27 06:39:40.57 3u678Fz6.net
for /f "delims=," %%A in ('w32tm /query /source') do ( echo サーバー: %%A
w32tm /monitor /computers:%%A | findstr "NTP:"
)
pause

451:デフォルトの名無しさん
16/01/27 06:50:27.07 3u678Fz6.net
for /f "delims=," %%A in ('w32tm /query /source') do ( echo サーバー: %%A
for /f "tokens=2" %%B in ('w32tm /monitor /computers:%%A ^| findstr "NTP:"') do echo %%B
)
pause

452:デフォルトの名無しさん
16/01/27 07:38:45.54 fJiggefa.net
>>432,428
ありがとうございます
表示もスッキリして頂いてとても勉強になります

453:デフォルトの名無しさん
16/01/27 23:21:20.89 bcAMZw4L.net
for /f "delims=," %%A in ('w32tm /query /source') do for /f "tokens=2 delims=+s " %%B in ('w32tm /monitor /computers:%%A ^| findstr "NTP:"') do echo %%A: %%B

454:デフォルトの名無しさん
16/01/28 13:48:27.48 EDEAMnLy.net
「資料%28過去%29」みたいにファイル名にutf-8?が含まれるものを指定してるのですが
batを実行するとデコードされて「資料(過去)」と認識されてます。
「資料%28過去%29」を文字列として認識させるにはどうしたら良いでしょうか。

455:デフォルトの名無しさん
16/01/28 15:22:02.94 hExe5FIX.net
>>437
パーセントエンコードはURIに使うものでbatでデコードはされないと思うな
それとは別に
batで%は特別な意味を持っていて、普通は引数や環境変数の中身を見るときに使う
echo %1 %hoge%
とか
よって、%2が第2引数を参照してるととられ、引数指定してなかったら無いので
資料8過去9
とならないとおかしいと思うけど?
本当に「資料(過去)」となるのなら俺にはその原因は分からない
で、「資料8過去9」となると仮定して%%と重ねて記述すると%になるので
資料%%28過去%%29
でどうかな?
batの何処にどういう風に使ってるのかわからないので場合によっては
%%%%と各必要があるかも知れない

456:デフォルトの名無しさん
16/01/29 21:46:01.22 j1UQgjYg.net
>>436
ありがとうございます
必要な情報だけ一行に集約されてとても見やすいです
こういうふうに書けるよう理解を深めたいです

457:デフォルトの名無しさん
16/01/30 03:15:06.90 hg3OxSOg.net
cmd.exe /k @for /f "delims=," %A in ('w32tm /query /source') do @for /f %B in ('2^>null nslookup %A ^| findstr /v :') do ^
@for /f "tokens=2 delims=+s" %C in ('w32tm /monitor /computers:%A ^| findstr "NTP:"') do @echo %A [%B]: %C
こういうのを"ファイル名を指定して実行"からだと「アクセスが拒否されました」となるのですが
コマンドプロンプトを管理者として実行の時と同様の結果にする書き方とか方法があれば教えて下さい

458:デフォルトの名無しさん
16/01/30 10:20:23.91 zXGU0vQS.net
すみません。
ディレクトリの中を見ていき、2GB以下なら圧縮ということをしたく
対象Dir
├フォルダ
│ ├フォルダ(2GB 以下) ← これを圧縮
│ │ └ファイル
│ ├フォルダ(2GB以上)
     ├フォルダ(2GB以下) ← これを圧縮
     ├フォルダ(2GB以上)
再帰的に見ていった時に、圧縮していくと最終的に一番上が2GB以下になり
全部圧縮されてしまい。どなたかお助けください

459:デフォルトの名無しさん
16/01/30 23:03:45.58 ffKBMc7H.net
再帰で圧縮せずに2GB未満フォルダのリストを作り再帰終了後にリストを元に圧縮
どうでも良いけど、超&以下、以上&未満な

460:デフォルトの名無しさん
16/01/31 11:30:04.13 +ngYeOTE.net
なるほど、そういうことですか
リストを出力して、最後にそれをパス指定で圧縮と
無駄に再帰でやろうとしすぎていました。ありがとうございます

461:デフォルトの名無しさん
16/02/06 10:40:05.52 hbtVaDtk.net
あるURL URLリンク(AAAAAA)… を引数%1として、
URLリンク(AAAAAA)だけを取り出す方法が知りたいです
(3つ目の/までの文字列を取り出したい)
よろしくお願いします

462:デフォルトの名無しさん
16/02/06 11:56:20.12 ilYyGYOR.net
>>444
@echo off
set arg1=%~1
@for /f "tokens=1,2 delims=/" %%i in ("%arg1%") do set domain1=%%i//%%j/
echo %domain1%
set arg1=%~1
set Scheme=%arg1://=&set arg1=%
set domain2=%arg1:/=&set dummy=%
echo %Scheme%//%domain2%/

463:デフォルトの名無しさん
16/02/06 12


464::13:31.62 ID:hbtVaDtk.net



465:デフォルトの名無しさん
16/02/07 03:34:31.41 xzt+ySx/.net
0001〜9999までをカウントするのってどうやればいいですか
常に4桁の文字列が得られるようにしたいです

466:デフォルトの名無しさん
16/02/07 03:59:09.24 S13nymNF.net
>>447
echo %random% を使う
0、10000以上であればやり直す

467:デフォルトの名無しさん
16/02/07 04:06:32.80 oI7YLQ9S.net
>>447
質問の意味がいまいち不明だがこういうことか?
@echo off
for /l %%i in (0,1,9999) do (
call set cnt=000%%i
call echo %%cnt:~-4%%
)
set n=0
:loop
set cnt=000%n%
echo %cnt:~-4%
set /a n+=1
if %n% lss 10000 goto :loop

468:デフォルトの名無しさん
16/02/07 15:37:11.81 YEUGR+cI.net
for /L %%i in (10001,1,19999) do (set ct=%%i
call echo %%ct:~-4%%)

set a=10001
:LOOP
echo %a:~-4%
set /a a+=1
if %a% LEQ 19999 (goto :LOOP) else exit /b

469:デフォルトの名無しさん
16/02/07 16:38:16.87 7II1MwkR.net
コマンドの実行結果を環境変数(value)に格納すべく、
for /f %%i in ('コマンド') do set value=%%i としたとき、
コマンドの処理時間が長いと完全に沈黙しちゃうので何とかしたいのだけど、
コマンドを単独で実行した時にコンソール上に表示される実行中の情報
(進行状況とか)を表示する方法ってないかな?

470:デフォルトの名無しさん
16/02/07 17:41:06.71 oI7YLQ9S.net
>>451
どうしてもって言うのなら、ファイルをフラグに使うとなんとかなるかな
@echo off
set f=%temp%\result
start /b コマンド>%f%
set n=0
call :wait %f%
if %errorlevel% neq 0 goto :timeout
for /f "tokens=*" %%i in (%f%) do echo %%i
del %f%
goto :eof
:timeout
goto :eof
:wait
if %~z1 gtr 0 exit /b 0
ping -n 2 localhost >nul
set /a n+=1
echo 処理中(%n%秒)
if %n% leq 10 goto :wait
echo timeout
exit /b 1

471:デフォルトの名無しさん
16/02/07 17:51:21.78 oI7YLQ9S.net
別の方法として
tasklistからコマンドが消えるのを監視するのがいいかも
さらには、別batでコマンドを起動し、終了時にタスクなり他ソフトなりを起動して
何らかのアクションを起こし、それを監視するとか

472:デフォルトの名無しさん
16/02/07 20:46:37.41 csmRYXFo.net
URLリンク(www.google.co.jp)

473:446
16/02/08 00:34:24.61 tvZTUQzk.net
>>452-453
やはりちょっと別の工夫が必要なんだねぇ。
一応、当該コマンドの処理
(通常のファイル操作に加えて、標準エラー出力からの文字列を整形したものを環境変数に格納)
が終わったら格納した環境変数を使ってまた別のコマンドを実行していて、
その時にエラーレベル判定は行われるので、
すんなり行けば、次のコマンド(ここで"echo 中間処理終了")で、その程度での経過は分かるから、
申し訳ないけど、そのままで妥協しておこうかな。
>>454
同時でなくていい場合なら、標準エラー出力のほうを一度ファイルにして、
改めてtypeで読み込んで整形して環境変数に格納というのでも出来そう。
teeをLinux(Cygwinでも)で使ったことはあって、Cygwinのbashスクリプトでやっちゃおうか、とも思ったんだけど、
とりあえずどのWindows環境でも使えるということで、ハマってしまいました。
ただ、findstrが文字数オーバーでエラーが出るサンプルがあって、
結局grep使っちゃったから、あまり意味が無いかもw

御二方、どうもありがとう。

474:デフォルトの名無しさん
16/02/08 01:25:16.89 DULBP8IA.net
>>455
tasklistの結果からそのコマンドのイメージ名が消えるまで適当に表示させながら
ループさせるんじゃいけないの?
また、>>452のエラーレベルって蛇足的な処理じゃん
無くても問題ない
該当コマンドってのが自分でカスタマイズできるんならリダイレクトも不要
そのコマンドの終了時点でフラグ的なファイルに書き込めばいい

475:デフォルトの名無しさん
16/02/08 01:29:33.68 T6p//Vzm.net
>>452 さんが書いているように、ファイルを使うのが簡単かな
コマンドの最後でファイルを作り、
batでは if exist でそのコマンドができるのを待つ、なかったら timeoutで待つループ

476:デフォルトの名無しさん
16/02/08 01:30:33.89 T6p//Vzm.net
>>456
あ、ダブった

477:デフォルトの名無しさん
16/02/08 01:36:07.46 IaYL4Dgo.net
>findstrが文字数オーバーでエラーが出るサンプルがあって
もうバッチの範疇外じゃないのかな?どのWinでもって事ならWSHかPowerShellを勧めるよ

478:デフォルトの名無しさん
16/02/08 01:43:25.70 IaYL4Dgo.net
あと通常のファイル操作って言ってもそんな事になるくらいのかなりの量を処理しているならロジック自体を見直した方が良い気がする

479:デフォルトの名無しさん
16/02/08 01:46:27.75 U7IijhSa.net
title 処理中です。ウィンドウは絶対に閉じないでください。
echo 処理中です。ウィンドウは絶対に閉じないでください。
でいいじゃん
ちょっと応答不能になっただけで速攻ウィンドウ閉じる奴って
結構多いけど理解に苦しむ

480:446
16/02/08 21:23:57.31 4qV7ShMX.net
>>456-461
問題のコマンドについて、今まで標準エラー出力から文字列を抽出していたけど、
環境変数でファイルパスを別途加える事でログをファイルに出力できることがわかったので、
コマンドの処理は通常通りおこなって(コンソールに経過他の情報が表示される)、
その終了後、改めてログファイルから文字列を読み込んで環境変数代入を処理することで、
経過情報を表示しながら for /F や tee と同じ目的を数行で達することが出来たよ。
コマンド実行と環境変数代入を同時に処理するということにこだわりすぎたかな。
みなさん、お付き合いいただき、どうもありがとう。

481:デフォルトの名無しさん
16/02/08 21:58:26.82 aeLE2jq+.net
>>461
高度なプログラムが動き出しちゃうときあるから

482:デフォルトの名無しさん
16/02/10 23:06:13.15 rMhx/tnP.net
コピーする時 if exist であったら適当に名前変えてコピーしてたんだけど
そもそも、重複時自動的にリネームしつつコピーしてくれるちょっと便利コマンドって
どこかにありそうな気がしたので、そんなコマンド(プログラム)教えてください

483:デフォルトの名無しさん
16/02/11 01:24:38.76 xppsr9es.net
重複時、上書き?リネーム?
リネームするならコピー元?コピー先?
リネームの形式は連番?日時?
これらをコマンドラインオプションで設定出来る非対話形式なcuiコピーツールがあっても良いなって思うけど
バッチ側の少しの手間で実現出来るからわざわざ外部ツール導入するのは躊躇われるな
firefilecopyにそれっぽい設定があった気がするけど使ってたの何年も前なので覚えてないわ

484:デフォルトの名無しさん
16/02/11 10:17:29.10 E36uRHTx.net
>>465
> これらをコマンドラインオプションで設定出来る非対話形式なcuiコピーツール
まさしくそういうツールが欲しいなと思った訳でして、firefilecopy 試してみたところ
連番などの指定ができない、既にリネーム済みのものがあった時に自動的に
処理できない模様で目的に合致せず、無念
linux 系のツールならと思ってググッてみても、cp だと拡張子が維持できない suffix の
付け方になってしまうなど、調度良いのが今のところ発見できず……

485:デフォルトの名無しさん
16/02/15 13:55:49.70 wQ6idclh.net
”コマンドラインでファイルやフォルダを名前に「コピー (n) 〜 」を付けて複製する。”
でぐぐって見つかるバッチを条件が合致した際にcallするとか
スクリプトだからリネーム条件なんかはカスタマイズも可能かと

486:デフォルトの名無しさん
16/02/15 14:13:15.78 NpLlCTmp.net
ffcかなんかは結構細かいコマンドラインオプションを受け付けてたから
それでコピーしつつログ解析して必要ならナンバーか日付つけてのリネームコピーするとかやればいいんじゃないの

487:459
16/02/15 21:36:25.85 CcVUGHWP.net
気を使わせて申し訳ありません
現状として、コピーする時に同名ファイルがある時には名前を変えてコピーするのは
既にバッチファイルで実現していて、同じことを手軽に便利に出来る単独の CUI な
ツール、プログラムがあれば、というよりあるに違いない、と思ったのが >>464
質問だったわけです

488:デフォルトの名無しさん
16/02/21 22:42:20.49 LXngu2PVR
共用パソコンのユーザごとのデスクトップとマイドキュメントにある
30日前更新のファイル(docx,xlsx)の一覧をバッチで取得する方法を
ご教示ください。環境はWindows7です。

489:デフォルトの名無しさん
16/03/11 22:12:34.63 g0a/JI38.net
バッチ中のcopy file1 file2 は copy "file1" "file2" と書くべき
file1 file2が+で始まる場合 ""で囲んでいないとcopyされない

490:デフォルトの名無しさん
16/03/15 00:41:28.28 8utBFAR1.net
バグ技、面白ネタなどあれば投下お願いします

491:騙し髪
16/03/15 01:32:32.69 ZWMv0nUc.net
>>472
これなど如何?
::←全角254文字が限界→
動く.CMD
rem /; ::0123456789ABCDEFGHIJKLMを11回書く+0 ※ 最後の0が254文字目
::0123456789ABCDEFGHIJKLM012345678・・・0
:LOOP
@ECHO;LOOP
@PAUSE
GOTO :LOOP
こちらは、GOTO :LOOP で止まります。
止まる.CMD
rem /; ::0123456789ABCDEFGHIJKLMを11回書く+01 ※ 最後の1が255文字目
::0123456789ABCDEFGHIJKLM012345678・・・01
:LOOP
@ECHO;LOOP
@PAUSE
GOTO :LOOP

492:デフォルトの名無しさん
16/03/16 09:25:21.97 6gvLipIQ.net
mshta vbscript:close(Execute("CreateObject(""SAPI.SpVoice"").Speak""nurupo"""))

493:デフォルトの名無しさん
16/03/20 13:25:19.72 pvWacbTU.net
@echo off
start "" "%~f0"
start "" "%~f0"
exit /b 0

494:デフォルトの名無しさん
16/04/02 01:38:35.14 SZPhSxIw.net
BashシェルをWindowsに搭載するWindows 10大型アップデート
URLリンク(gigazine.net)
これでバッチを使う必要がなくなればいいな

495:デフォルトの名無しさん
16/04/03 19:00:37.30 +cm4a62/.net
人によってはbatで使うかも
URLリンク(www.horstmuc.de)

496:デフォルトの名無しさん
16/04/04 03:27:50.00 UUnGIXWs.net
これって正式な機能?それともラベルを悪用しただけ?
In a batch file REM at the start of a line signifies a comment or REMARK, alternatively adding :: at the start of a line has a similar effect.
Rem - Comment | Windows CMD | SS64.com
URLリンク(ss64.com)

@ECHO OFF
::
:: First comment
REM Second comment
REM

497:デフォルトの名無しさん
16/04/04 03:48:54.12 TBgct8lK.net
similar effectってあるように同様の効果があるってだ


498:け ラベル機能をコメントとして使うのは昔からある手法



499:デフォルトの名無しさん
16/04/04 03:50:07.49 TBgct8lK.net
でも俺は
::comment
というように:を2つ連ねるけどね

500:デフォルトの名無しさん
16/04/10 15:46:04.10 wyM3R/Jw.net
for /f

501:デフォルトの名無しさん
16/04/10 16:11:22.77 wyM3R/Jw.net
"
for /f "delims=" %%a in (hoge.txt) do
このコマンドで1つのファイルから交互に2つの変数に中身を代入できないでしょうか
*hoge.txt*
ほげ1
ajairhioa
ほげ2
aj329jagjal
これを%%aにはほげ1ほげ2、%%bにはajairhioa、aj329jagjalを順次代入したいです
"

502:デフォルトの名無しさん
16/04/10 17:35:06.95 DGt37MFb.net
set cnt=0
for /f "delims=" %%a in (hoge.txt) do call :sub %%a
for /f "tokens=1* delims=," %%a in (hogehoge.txt) do echo %%a %%b
pause &exit /b
:sub
if %cnt%==0 (
set LN=%1
set /a cnt+=1
exit /b
)
>>hogehoge.txt echo %LN%,%1
rem ↑ファイルに書き出す事に不都合があるなら↓
rem for /f "tokens=1* delims=," %%a in ("%LN%,%1") do echo %%a %%b
set cnt=0

503:デフォルトの名無しさん
16/04/10 18:06:01.41 DGt37MFb.net
rem 3行毎
set cnt=1
for /f "delims=" %%a in (hoge.txt) do call :sub %%a
for /f "tokens=1,2* delims=," %%a in (hogehoge.txt) do echo %%a %%b %%c
pause &exit /b
:sub
if %cnt% LSS 3 (
set LN=%LN%,%1
set /a cnt+=1
exit /b
)
>>hogehoge.txt echo %LN%,%1
set LN=
set cnt=1

504:デフォルトの名無しさん
16/04/10 20:10:23.92 R4xtJDTH.net
wsh併用だと
@if (0)==(0) echo off
for /f "tokens=1,2 delims=," %%a in ('cscript.exe //nologo //e:jscript "%~f0"^<hoge.txt') do (
echo %%a , %%b
)
goto :eof
@end
var StdIn=WScript.StdIn;
while (!StdIn.AtEndOfLine){
var s=StdIn.ReadLine();
if(!StdIn.AtEndOfLine) WScript.Echo(s+","+StdIn.ReadLine());
}

505:デフォルトの名無しさん
16/04/11 21:54:33.79 Vzz4aFRc.net
>>483-485
バッチまったくの初心者であまりわかりませんでしたがありがとうございます
なにか初心者向けで体系的に学べるサイトとかありますかね?

506:デフォルトの名無しさん
16/04/11 21:58:42.43 Vzz4aFRc.net
>>483-485
バッチまったくの初心者であまりわかりませんでしたがありがとうございます
なにか初心者向けで体系的に学べるサイトとかありますかね?

507:デフォルトの名無しさん
16/04/11 21:59:22.47 Vzz4aFRc.net
書き込んでないと思って連投してしまいましたすみません

508:デフォルトの名無しさん
16/04/11 22:40:01.79 OwO3FuPu.net
PowerShell_ISE で、やった方がいいよ

509:デフォルトの名無しさん
16/04/11 22:59:56.31 Vzz4aFRc.net
powershellはchecksum使う時くらいしか使わないんですが、powershellのほうが初心者には使いやすいのでしょうか?

510:デフォルトの名無しさん
16/04/11 23:11:45.22 kHX/TE9c.net
>>490
はい

511:デフォルトの名無しさん
16/04/12 00:30:07.81 cKwKVfMZ.net
powershellはファイル属性を変えるときだけ使っている
テンポラリー属性ってcmdからだと変更できないよね

512:デフォルトの名無しさん
16/04/12 00:31:51.05 iN7RaFvn.net
PowerShell_ISE で、
$i=0
$evenStr=''
$oddStr=''
$ary = (cat hoge.txt) -as [string[]]
foreach ($line in $ary) {
if($i % 2 -eq 0){
$evenStr += $line
}else{
$oddStr += $line
}
$i++
}
Write-Output $evenStr, $oddStr
入力
1
2
3
4
5
出力
135
24

513:デフォルトの名無しさん
16/04/12 04:11:38.82 mqOre39w.net
バッチファイル今から覚えるのは無駄すぎる
せめてvbsにした方がいい

514:デフォルトの名無しさん
16/04/12 05:40:07.79 Hl1a/qVy.net
覚えるってほど御大層なモノじゃねーじゃん
精々 %1 && >> とかの幾つかのお約束事と最初に躓くコマンドはforくらい
他のコマンドやオプションはggってリファレンス見ればいいんだし
echo pause set if for call goto start move xcopy ren del dir findstr
これだけ知ってればちょっとしたファイル操作に便利だし他に比べハードル低いよ
複雑な事をするにはバッチは向かないし制約もあるから他が良いのは間違いないけど

515:デフォルトの名無しさん
16/04/12 08:15:23.59 smwPn8rR.net
他のを覚えてからでも遅


516:くはないかな



517:デフォルトの名無しさん
16/04/12 08:40:26.31 xYAotuK9.net
ちょっと凝ったことしようとしたらいきなり面倒になったり
トラップもそれなりにあるし
わざわざ覚える言語ではないと思う
bash 並みになればまだいいんだが

518:デフォルトの名無しさん
16/04/12 10:03:04.09 W9B2ZLoA.net
今から覚えるにはちょっと…というのは解かるんだが
一番簡単なものだし、ちょこっとやる分には良いとっかかりになると思うよ
ヘルプ読むだけで十分概要はわかるしね
それから何にいくのかは、自分が何に興味あるかで決めればいい

519:デフォルトの名無しさん
16/04/12 22:44:22.00 N5k4ywKZ.net
皆さんありがとうございます
cmdは少し学んで、その後win10に向けてshellを学ぼうかなと思います

520:デフォルトの名無しさん
16/04/29 16:15:40.02 Du8RELkw.net
ワイルドカード指定で否定は出来る?
例えば「指定フォルダ以下に存在する拡張子がtxt"以外"のファイルを全て削除(サブフォルダ含む)」
みたいな事をやりたいんだけど。

521:デフォルトの名無しさん
16/04/29 21:30:07.02 nOk/Iq10.net
>>500
そういう場合は
for /f %%i in ('dir "%1" /a-d /b /s | findstr /r /i /c:".txt\>"') do del %%i
というバッチを書いて第一引数に指定フォルダを渡せばいいんじゃないの??

522:デフォルトの名無しさん
16/04/29 21:35:10.00 nOk/Iq10.net
間違えた。
for /f %%i in ('dir "%1" /a-d /b /s | findstr /r /i /v /c:".txt\>"') do del %%i
だった。

523:デフォルトの名無しさん
16/04/29 23:27:50.12 Du8RELkw.net
ワイルドカードで否定な指定は無理なのか。
ありがとう。ちょっと検討しなおしてみる。

524:デフォルトの名無しさん
16/04/30 22:24:06.87 HLsp90ue.net
>>503
ワイルドカードで否定、というより…
hoge.txt hoge.doc hoge.xls … とあったとしてだよ。
.txt 以外の拡張子を持つファイル、という指定は Linux の bash でも 1コマンドでは出来ないよ??
とりあえず、俺の知る限りのコマンドラインシェルでは出来ない。

525:デフォルトの名無しさん
16/05/01 02:14:20.07 f7rDjALb.net
除外指定と言いたいのだろうけど三国人か?
496弄れば除外設定の拡張子もサブフォルダ以下を含めるかも引数で指定出来るようになるだろうに何か問題あるの?

526:デフォルトの名無しさん
16/05/01 08:38:28.34 4tDBI2/Z.net
正規表現だと否定って言うのは普通に使うから別に違和感ないけどね
それ以前にいきなり三国人とか言い出す癖直した方がいいと思うよ

527:デフォルトの名無しさん
16/05/01 11:19:50.80 tKi6j9CT.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw

The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


528:デフォルトの名無しさん
16/05/01 15:01:02.76 gt2lBnxw.net
一般的ではないが、bash他にはそれっぽい拡張があるといえばある>否定
shopt -s extglob; ls !(*.txt)

529:デフォルトの名無しさん
16/05/01 20:56:52.01 w3ycpbWL.net
>>506
それで思い出したけど、ワイルドカードにはそもそも否定、っていう概念が無いのよね。
>>508
それは知らなかったぜ…。が、やっぱ拡張であって1コマンドじゃないのね。

530:デフォルトの名無しさん
16/05/02 11:40:31.88 ZqwyA4jL.net
xcopyだと /EXCLUDE で除外したいパスを指定できるけど
そういえば他のコマンドでは無いよね。

531:デフォルトの名無しさん
16/05/09 14:25:03.70 LpHkpPcH.net
>>506
> 正規表現だと否定って言うのは普通に使うから別に違和感ないけどね
普通に使う??
否定の正規表現がどのくらい面倒臭い代物か知ってて言ってんのかよ

532:デフォルトの名無しさん
16/05/09 20:31:48.60 4hkTezx/.net
>>511
若いなお前

533:デフォルトの名無しさん
16/05/11 20:07:41.82 +ByNjd23.net
>>511
お前は正規表現の前に日本語を勉強すべき

534:デフォルトの名無しさん
16/05/15 23:09:30.40 0PD+6ouG.net
Windows10 でコマンドプロンプトの透明度(不透明度)が設定できますが
color で色を変えるように、透明度の変更をコマンドでやるには
どうすれば良いでしょうか?

535:デフォルトの名無しさん
16/06/06 05:31:09.64 /VUqLFGt.net
フォルダ内に含まれるファイル名(若いファイル名)を取得して、そのファイル名
をフォルダ名としてリネームすることはできないのでしょうか?
■フォルダ1
┣ファイル1
┣ファイル2
■フォルダ2
┣ファイル3
┣ファイル4
といったフォルダ構造があったばあい、
■ファイル1
┣ファイル1
┣ファイル2
■ファイル3
┣ファイル3
┣ファイル4
といった感じにリネームしたいんです
ヒントがあれば教えてください

536:デフォルトの名無しさん
16/06/06 05:36:07.56 mrKNlhKB.net
>>515
再帰呼び出し

537:デフォルトの名無しさん
16/06/06 05:59:54.20 JVcEODJX.net
ソフ板の libre office スレで聞いていた人かな、あっちではスレを移動するとの
断りも何もせず放置したように移動してきてるみたいだけど
別人ならごめん
結果的に同名のフォルダとなる場合のリネームのルールさえ決めておけば
for でやってもそんなに難しくはない

538:デフォルトの名無しさん
16/06/06 06:39:56.64 /VUqLFGt.net
>>516
ファイル名をフォルダ名にリネームしている、参考ページがあれば教えてもらえないですか?
>>517
別人ではないですよ。
forを使う場合は、どうやるんでしょうか?
サンプルが載ってるページがあれば教えてください

539:デフォルトの名無しさん
16/06/06 07:38:12.87 mIdKUrWt.net
>>518
こんな感じ
@echo off
for /f "delims=" %%i in ('dir /b /on /ad') do (
for /f "delims=" %%j in ('dir /b /o-n /a-d "%%~i"') do set name=%%~j
call ren "%%~i" "%%name%%"
)
フォルダ名の重複によるリネームエラーを変名してリトライするなら
上の call ren "%%~i" "%%name%%" を
set src=%%~i
call set dst=%%name%%
call :ren
の3行に代えて下を追加(引数渡しでなく環境変数渡しなのは、特殊な文字の変換をなるべく防ぐため)
goto :eof
:ren
ren "%src%" "%dst%" 2>nul
set suffix=1
if %errorlevel% equ 0 goto :eof
:loop
ren "%src%" "%dst% (%suffix%)" 2>nul
set /a suffix+=1
if %suffix% gtr 10 echo ***打ち切り***&goto :eof
if %errorlevel% neq 0 goto :loop
goto :eof

540:デフォルトの名無しさん
16/06/06 08:36:49.68 /VUqLFGt.net
↑回答ありがとうございます。自分には理解できないので
調べて読み解いて、理解できあなかったらまた質問


541:ウせてもらいます。



542:デフォルトの名無しさん
16/06/06 12:24:37.84 /VUqLFGt.net
↑無事動作しました。
ありがとうございました。
今まで、相当に無駄な作業してました。

543:デフォルトの名無しさん
16/06/06 15:17:54.02 mIdKUrWt.net
>>521
余計なことかも知れないが、空のフォルダがあった場合に変になるのでそのフォルダはリネームしないことにすると以下のようになる
@echo off
pushd %1
for /f "delims=" %%i in ('dir /b /on /ad 2^>nul') do (
call set folder=%%~i
call :search_file
call :ren
)
popd
goto :eof
:search_file
set fname=
for /f "delims=" %%j in ('dir /b /on /a-d "%folder%" 2^>nul') do set fname=%%~j&goto :eof
goto :eof
:ren
if not defined fname goto :eof
set suffix=1
ren "%folder%" "%fname%" 2>nul
:retry
if %errorlevel% equ 0 goto :eof
ren "%folder%" "%fname% (%suffix%)" 2>nul
set /a suffix+=1
if %suffix% gtr 10 echo ***打ち切り(%folder%)***&goto :eof
goto :retry

544:デフォルトの名無しさん
16/06/06 17:00:29.53 mIdKUrWt.net
訂正
call set folder=%%~i
for /f "delims=" %%j in ('dir /b /on /a-d "%folder%" 2^>nul') do set fname=%%~j&goto :eof
 ↓
set folder=%%~i
for /f "delims=" %%j in ('dir /b /on /a-d "%%folder%%" 2^>nul') do set fname=%%~j&goto :eof

545:デフォルトの名無しさん
16/06/06 19:49:58.32 wj+hntm6.net
>>521
相当に無駄なスレ違いの質問はクローズしよう
スレリンク(software板:665番)

546:デフォルトの名無しさん
16/06/06 20:27:13.87 kp8pJweP.net
libre office スレのもんだけど
マルチ宣言してる奴に快く回答するとか
まじクズっすねー

547:デフォルトの名無しさん
16/06/08 21:05:04.00 rpxHmTxH.net
>>522
そこはかとなくダサい気がするのだがうまく言えなくてもどかしい。

548:デフォルトの名無しさん
16/06/08 21:09:54.69 rpxHmTxH.net
>>525
面白い課題や面白い発見自身に罪は無い。
それを提示した人間がたとえ殺人者でも、その課題や発見自身は俺は歓迎する。
もし、Libre Office の開発者の一人が殺人を犯したからといってお前は Libre Office を使うのを止めるか?
止めるのであれば非難していただいて結構。

549:デフォルトの名無しさん
16/06/08 22:04:51.84 sUmK8XFr.net
>>527
その例えはおかしいね
マルチ質問に返答するのはマナー違反って話なんだから
つーか例える必要ないでしょ
マルチ質問に答えることがマナー違反ではない理由を言えばいいだけだ

550:デフォルトの名無しさん
16/06/08 22:23:27.09 rpxHmTxH.net
>>528
> マルチ質問に返答するのはマナー違反って話なんだから
間違い。
1. マルチ投稿は迷惑かもしれないが、課題としては良問と思った。情状酌量の余地あり。
2. マルチ投稿に答えるのがマナー違反だという話は聞いたことがない。
3. 別板からわざわざ出張って「○○のもんだけど」とか言われてもシラネ。掲示板のルール無視。それこそ893まがいの行為。

551:デフォルトの名無しさん
16/06/08 22:29:07.11 rpxHmTxH.net
>>528
お前がインターネットのルールブックなわきゃねぇんだ。マナーだのなんだのごたくヌカすな。
>>522
全体的にエラー処理まわりが気になるけど、そこは置いとく。
ren じゃなくて move じゃない?ren にすごく違和感…。

552:デフォルトの名無しさん
16/06/08 22:34:56.16 sUmK8XFr.net
>>529
1. あなたがそう思うのは勝手だけどそれに対してクズと呼ばれるのは仕方ないこと
2. マナー違反を受け入れるのもマナー違反なのは当然
3. 俺に言われても知らん
あとさ、例えが例えになってないことについてどう思ってんの?

553:デフォルトの名無しさん
16/06/08 22:49:05.28 JbG4hFO7.net
わざわざ出張ってこなくていいから大人しく返ってくれ
このスレは過去を見てもわかるように、親切な人間達が回答してくれる珍しいスレなんだからさー

554:デフォルトの名無しさん
16/06/09 00:29:49.83 mVcmv6vY.net
向こうのスレ見てきて状況がわかった
マルチって言ってるけど、向こうで最後に書いてから半日経ってからこっちに書いてるじゃん
それになんだか追いだされたように見える
まあ、さよなら、を言わずに出てったのは礼儀知らずかもしれないが
そんなのは世の中にいっぱいいるんで今更事たてて言うほ


555:どじゃないな



556:デフォルトの名無しさん
16/06/09 00:38:52.14 M1aHpfX0.net
setlocal
cd フォルダ
endlocal
でせっかくcdしても元に戻ってしまう

557:デフォルトの名無しさん
16/06/09 00:56:26.88 mVcmv6vY.net
>>534
setlocalはそういうもんだから
逆に環境が引き継がれちゃったらsetlocal使う意味が無くなる
そういうことやりたかったら、
setlocal
set result=999

endlocal&set result=%result%&cd フォルダ
ってやると、環境変数を返すことも出来る

558:デフォルトの名無しさん
16/06/09 01:29:34.62 M1aHpfX0.net
>>535
ありがとうございます
そんな高度な技ができるとは知らなかったです

559:デフォルトの名無しさん
16/06/09 02:52:40.71 3N2Gwx2N.net
>>526
suffixとかかな
for /f "delims=" %%j in ('dir /a-d /b "%folder%" 2^>nul ^|^|goto :eof') do ren "%folder%" "%%~nj" &&goto :eof
でren出来なかった場合のみerrorlog吐くとかの方がスマートかも
まあバッチだし。。細かいとこ凝るならpsとかの方が

560:デフォルトの名無しさん
16/06/09 14:01:20.29 mVcmv6vY.net
>>537
for /f "delims=" %%j in ('dir /a-d /b "%%folder%%" 2^>nul ^|^|goto :eof') do ren "%folder%" "%%~nj" &&goto :eof

561:デフォルトの名無しさん
16/06/09 14:12:43.69 mVk0iXAO.net
> マルチ質問に返答するのはマナー違反って話なんだから
質問がマナー違反なんて話は知られてるが
返答がマナー違反なんて初めて聞いたけど、誰かソース知ってる人いる?
この人の妄想かな

562:デフォルトの名無しさん
16/06/09 16:04:09.94 Et4Ks3FV.net
こんなところで他人に何かを求めたりルールやマナーを押し付けるのは愚行
自分がレスしたきゃするし興味無いならスルー
自治厨ってのは自分の耐性の低さを尤もらしい大義名分で誤魔化しているだけに過ぎない
自治厨や創価みたいな制裁厨は荒らしと同じゴミ

563:デフォルトの名無しさん
16/06/10 08:47:12.85 7xQ2IbxD.net
>>539
返答しちゃうとマルチでいいんだ
って勘違いする奴がいるってことだろ
普通それぐらいわかると思うが...

564:デフォルトの名無しさん
16/06/12 22:53:45.89 T3khqEs4.net
>>541
普通と言われても、それを実際に文章で目にした記憶ないんだよな
ソース張れるか?妄想URLじゃなくてさ。
クロスポストマルチポストという言葉が生まれたニュースネットならまだしも。
個々のスレで関連性の無い2chだと正直どうでもいい。
ていうか今ニュースネットってどうなってるんだろ。まだあるんかな?

565:デフォルトの名無しさん
16/06/12 23:23:12.75 Dejri5g9.net
>>542
理解力ないってこと?

566:デフォルトの名無しさん
16/06/12 23:29:33.63 nN2o7Cuz.net
誰と闘ってるの

567:デフォルトの名無しさん
16/06/13 02:21:55.70 bKXy9+E3.net
マルチがマナー違反なら答えないほうが良いと思うが普通の考えだと思う
所詮はマナーだからもう終了しろ

568:デフォルトの名無しさん
16/06/16 16:19:50.79 Y8ybIIT3.net
マナー違反として問題になるならあっちこっちで
これがダメあれがダメとダメ出しのソースが出るんだよ。
マルチポストする方に関しては検索するとボロボロ出てくるだろ。
しかしこれがマルチポストに回答する事に関しては出てこんのだよな。
これの意味するところはつまりそこまで問題ではない、問題にする人はいないってこった。
回答する気が無いならしなければいいだけ。
回答した人に対してマナー違反だ回答するな等と文句付けるのは何様?筋違いだと思うね。
ぶっちゃけ俺も気にしないし。気にする人見たら今のように珍しいなあと思うな。

569:デフォルトの名無しさん
16/06/16 16:49:06.61 pl2Ydjf9.net
おまえらしつけーよ
下らないスレチネタで議論する暇があったら面白バッチネタの一つでも書きやがれ
で、PowerShellってどうよ?

570:デフォルトの名無しさん
16/06/16 17:50:03.03 dWCIrllM.net
Power Shellにはなんか食指が動かない(XP


571:使ってるんで) まあ簡単な奴以外はwsh(jscript)を使うな でも今Rubyが面白いかもって思ってる(Perlも入れたけどそっちは殆ど手付かず) .JScriptの中からScriptControlでRubyScriptの関数をCALLするとか変態的なことを試してるところ (.rbで作って、.js(.wsf)に埋め込むっていう非効率的な作業をやってる)



572:デフォルトの名無しさん
16/06/16 23:14:35.32 oJOkyOjy.net
パワーシェルは出来る事も多いし 痒いとこ(チンポじゃないよ)にも手が届くけど
なんとなくバッチ組めちゃうdosコマンドに比べたら難しく感じちゃうな
ただ複数のアプリの同時起動が簡単に出来るからそういう用途ではよく使ってる

573:デフォルトの名無しさん
16/06/17 07:01:08.70 TQ7oR46s.net
>>546
>>543

574:デフォルトの名無しさん
16/06/17 07:14:29.17 TQ7oR46s.net
>>547
書き方とかにちょっと違和感があるけど慣れればかなり使えるって感じ
特にバッチは文字列の扱いが色々面倒だからファイル名を切った張ったするようなケースだと PowerShell の方が楽
WPF 使って GUI もいけるし

575:デフォルトの名無しさん
16/06/17 14:10:51.86 ZjDSffK/.net
>>550
お前がな…

576:デフォルトの名無しさん
16/06/17 14:14:36.97 ZjDSffK/.net
個々人がマナー違反だと思うのはその人の勝手。
だが、「皆が」そうだというならお前以外の意見つまりソースを出せと。
そんなことも理解できんのね

577:デフォルトの名無しさん
16/06/17 14:45:53.78 kt8UtU4J.net
>>546
本来、内容はどうであれ、マルチポストの相手をすべきではないんだよ。
マルチポストとか思うから、マナーだとか言い出すんだろうけど、
コピペの荒らしだと思えばいいんだよ。相手にするヤツがバカだろう?

578:デフォルトの名無しさん
16/06/17 15:22:57.71 PGPlVx2O.net
いやー、そのレスでちょっとは盛り上がったじゃん
十分このスレでの意義はあったと思うよ
元のスレのofficeじゃスレ違いだとかいってハブって追い出したくせに
こっちに来たら追いかけてきてイチャモンつけるって性格悪いな

579:デフォルトの名無しさん
16/06/17 18:35:44.26 oyCWF+hy.net
>>555
そいつに関しては性格悪いなんてもんじゃないでしょ
わざわざ他スレへ出張って文句言う粘着性はガイキチ
池沼は相手にしないが吉
>>548-549
>>551
いや、おまえがスレチだろってツッコミ待ちだったんだがおまえら良い奴だな
ありがとう
既に.NET知ってる人は楽なんだろうけど一から覚えるの面倒臭くて。。
ましてやPSの為だけにとなるとなかなか重い腰が動かず
>ファイル名を切った張ったするようなケースだと
まさにこの用途なんだよね
バッチから文字列の扱いを少し便利にしてくれるくらいで良かったんだけど覚える量的に一気にハードル上がって面倒臭い
覚えてしまえば楽になりそうなのは分かってるので、ぼちぼちやってくわ

580:デフォルトの名無しさん
16/06/17 18:55:09.01 TQ7oR46s.net
>>554
まあ、そう言うこと
ググって部屋のなかにうんこするなとかの書き込みが少ないからうんこするぜ
って言うのと同じ
考える力のない奴に何を言ってもしょうがない

581:デフォルトの名無しさん
16/06/17 18:58:07.69 TQ7oR46s.net
>>556
対話で使えなくてもいい
将来を心配したことがない
なら vbs/jscript + wsh でもいいかも

582:デフォルトの名無しさん
16/06/19 09:59:28.72 rDn80OX3.net
>>557
うんこと考えてるのは実はお前だけってな
お前さん理想と現実の区別付いてないだろ?

583:デフォルトの名無しさん
16/06/19 11:27:46.12 Pvc+naRU.net
>>559
>>543

584:デフォルトの名無しさん
16/06/19 17:51:44.69 Ujr


585:NrWKl.net



586:デフォルトの名無しさん
16/06/19 20:28:17.53 N0SKT7vZ.net
> 2ちゃん初めてか?
まだこんなこと言ってる奴がいるんだなw

587:デフォルトの名無しさん
16/06/20 05:15:32.88 bz6tTT9I.net
そもそも「2ちゃん」という言い方自体、自称古参爺しか使わん

588:デフォルトの名無しさん
16/06/20 12:37:29.60 1rHeBxTu.net
ちゃんちゃん

589:デフォルトの名無しさん
16/06/20 12:56:47.33 XUIKeVkP.net
2chって言うよな

590:デフォルトの名無しさん
16/06/21 23:17:02.70 wIBHL76T.net
言うの?
発音はツーチャンネル?

591:デフォルトの名無しさん
16/06/22 03:22:26.83 UKX8/FIx.net
声には出さないけど「にちゃん」って読んでるな
書く時は2chって書くかな

592:デフォルトの名無しさん
16/06/22 08:59:59.99 ffHjJb8n.net
>>567
漏れも

593:デフォルトの名無しさん
16/06/24 01:13:29.70 buggiI8H.net
俺は教育テレビって言ってる
Eテレは馴染めん

594:デフォルトの名無しさん
16/06/24 02:23:17.48 iovZLto/.net
教育テレビは3チャンネルだと思ってたけど、
地デジは3ちゃんTVK♪というCM思い出して
違うことに気づいた。

595:デフォルトの名無しさん
16/06/27 10:51:32.41 IRTRDse4.net
dir /Q はオーナー名が長いとファイル名とくっついてしまう欠陥コマンドだった

596:デフォルトの名無しさん
16/06/27 13:44:52.16 cmd3G8BZ.net
会社のサーバに散在している.batファイルを片っ端から削除したい。いや、マジで。
URLリンク(el.jibun.atmarkit.co.jp)

597:デフォルトの名無しさん
16/06/27 13:56:09.99 YSZG9z+3.net
del /f /s /q *.bat
でよくね?

598:デフォルトの名無しさん
16/06/27 14:13:24.61 RStewB0e.net
個人用ローカルPCだけど俺も何に使ったか分からないbatファイルがそれなりに残ってるわw
1度整理したから大量ってほどではないけど
ニッチな用途だとファイル名だけでは用途を思い出せないのが難点

599:デフォルトの名無しさん
16/06/27 14:35:10.14 N5RLWdSz.net
batなんて使わなくなったら即削除してるから残ってるのはせいぜい20個程度だ

600:デフォルトの名無しさん
16/07/03 21:43:03.57 vq6Z+j1h.net
「削除した」なら許せるが、削除したい(削除できなかった)ならただの糞文

601:デフォルトの名無しさん
16/07/03 22:02:09.39 T1/0jYLy.net
読んでねーけど、したいけど出来ないって愚痴なんじゃねーの?
何に使うか分からんようなゴミを鯖に残してて勝手に消したら老害が何で消した?いつか使うかもしれんのに!って怒るとか
いつかって何だよって言う。たかがbatでアホかって老害SEあるあるネタ

602:デフォルトの名無しさん
16/07/03 22:37:12.83 CJuDkW1k.net
んー、そもそもバッチを使う(作る)人に対する人格否定、という感じのブログ
アナウンス出して全て消しゃいいじゃん、というのが率直な感想
でもやりたいのは、バッチを使う(作る)人の排除みたいだから、
社長になって独裁人事するのが一番の解決なんだろうね

603:デフォルトの名無しさん
16/07/06 01:43:37.05 j2aYQoha.net
整理整頓が出来ていればいい話
バッチに限った事じゃない
不要の見極めも難しいから
消せずに残ってゴミ屋敷が現実

604:デフォルトの名無しさん
16/07/07 00:24:13.51 WGF782sG.net
会社のサーバだとうちもバッチに限らずなんだかよく分からんのがいっぱいあったな
いらなさそうなのまとめて圧縮して1年後の日付書いてこの日まで使わなければ消すってしといた

605:デフォルトの名無しさん
16/07/07 14:56:47.42 TsrNo+6t.net
そうやってなんか対処してるなら話はわかるんだけど
うぜぇうぜぇ


606:チて言うだけで自分では対処しないで放置ってのはもう…



607:デフォルトの名無しさん
16/08/09 17:07:41.16 j5HqbEBX.net
Windows 10のLinuxサブシステムを狙った攻撃が今後登場する可能性
URLリンク(srad.jp)
免疫力がつくまでしばらく待った方がいいのか知らん

608:デフォルトの名無しさん
16/08/14 22:50:59.47 r/0nUjHR.net
そもそもβなんだし、素人さんが手を出していい物じゃないんだけどな。

609:デフォルトの名無しさん
16/08/15 00:25:59.77 8W38K+Qq.net
まだcygwinのほうが安全ということなのかね

610:デフォルトの名無しさん
16/08/21 07:59:09.76 zhyP4GkP.net
今んとこサーバ用途は全く想定してないからさして問題にはならないだろう
最終的にはMacのポジションを目指すのだろうからそれまでに直しておけば良い
テクノロジーカンファレンスがSurfaceで埋まる日は来るか
URLリンク(www.buildinsider.net)

611:デフォルトの名無しさん
16/09/06 18:28:00.80 G35PExva.net
Windows標準のコマンドプロンプトウィンドウをタブ化できる「ConEmu」
URLリンク(osdn.jp)
多数のDOS画面でお仕事する人向け

612:デフォルトの名無しさん
16/09/06 18:51:20.42 rT4OuLmz.net
ConEmuも所詮バックグランドでcmd動かしてて、
cmd単独よりは少し便利になるものの、
元々の日本語の表示の不具合(端が切れる)を引き継いでるからなぁ。
cmd完全互換のまともなシェルはないものかねぇ。

613:デフォルトの名無しさん
16/09/07 18:29:47.35 b6UGEvRF.net
タブでまともに機能するのはすごいたぶちさんだけ

614:デフォルトの名無しさん
16/09/07 19:12:06.44 eCxhE93W.net
.BATと.CMDでは何が違うのでしょうか?
使える命令などに違いがあるのでしょうか?
教えてください。

615:デフォルトの名無しさん
16/09/08 00:57:15.94 54d0WlHM.net
>>589
違いは無いよ
DOSの時代からWin16の時代は拡張子はBATであり、
Win32の時代からMSはCMDに変えたがったみたいだが以前としてBATが主流となってるだけ

616:デフォルトの名無しさん
16/09/08 01:30:50.71 MGX2ZdyU.net
cmd は WindowsNT, OS/2 由来じゃなかったっけ?
例えば OS/2 だと bat にすると DOS互換ボックスでのバッチファイル動作で
cmd にすると OS/2 ネイティブ動作

617:デフォルトの名無しさん
16/09/08 02:06:01.27 54d0WlHM.net
>>591
そうだったっけ?
OS/2は殆ど使ったことない(さわりだけ)んで、拡張子batが動作したかどうか忘れちゃったんだけど
(暗黙の了解でcmdでしか使ってなかった)

618:デフォルトの名無しさん
16/09/08 02:15:48.19 54d0WlHM.net
ちなみに俺が使ってたOS/2はver.1.2のごく初期の奴だったんで
そもそもDOS互換とか存在してなかった気もする

619:デフォルトの名無しさん
16/09/08 03:45:32.33 Jzexm0YP.net
>>589
基本的には同じと思っていいけど厳密には少しだけ動作に違いがある
URLリンク(stackoverflow.com)

620:デフォルトの名無しさん
16/09/08 04:05:36.46 PAzqK7FZ.net
.bat 普通のバッチファイル用途。
.cmd ruby -x でrubyのコード埋め込む為に使用する。シンタックスハイライトをruby向けに設定。
という超ローカルな使い分けをしている

621:デフォルトの名無しさん
16/09/08 21:40:41.34 5x3R57hb.net
setlocal enabledelayedexpansion
set STR="aaa"
if STR=="aaa"(
STR = "bbb"
echo !STR!
)
echo !STR!
echo %STR%
遅延環境変数が分からない


622:のですが、自分の環境だと全て"aaa"になります。 どこが間違っているんでしょうか?



623:590
16/09/08 21:53:39.72 5x3R57hb.net
すいません。適当に書いてしまったのを訂正します
・"bar"が出て上手く行かないケース
@echo off
setlocal enabledelayedexpansion
set foo2="bar"
if %foo2% == "bar" (
set foo2 = "hoge"
echo !foo2!
)
pause
・"hoge"が出て上手く行くケース
@echo off
setlocal enabledelayedexpansion
set foo="bar"
if %foo% == "bar" (
set foo="hoge"
echo !foo!
)
pause
この2つの違いが分かりません。

624:デフォルトの名無しさん
16/09/08 21:58:24.35 5x3R57hb.net
自己解決しました
foo2と=の間に空白があるのが原因でした。
バッチは文字列を代入する際には空白があってはいけないのですね。
set foo2= "hoge"
としたら上手く行きました。
set /a foo2 = 10
では空白があっても行けたのですが、文字列の場合はダメなんですね。

625:デフォルトの名無しさん
16/09/09 03:51:09.43 LpeB3e0i.net
Linuxのシェルスクリプトでも、変数代入時、= の前後に、半角空白を入れられない
a=b
a = b これはダメ
こういう点が、プログラミング言語としてはクソなんだよ。
PowerShell_ise を使いな

626:デフォルトの名無しさん
16/09/09 06:34:14.46 Sx9RRTJO.net
>この2つの違いが分かりません。
そんな違いわかりたくもない
バッチファイルでif文をトラブルなく使う - Qiita
URLリンク(qiita.com)
バッチファイルでif文を使っていてハマったので、ハマらないための書き方と注意点をまとめてみた
解決方法
何も考えず必ず以下の形で書く。
if 条件 ( ←(1)
call :サブルーチン名 引数 ←(2)
) else if 条件 ( ←(3)
call :サブルーチン名 引数
) else ( ←(4)
call :サブルーチン名 引数
) ←(5)


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1838日前に更新/325 KB
担当:undef